From d7630a8049c511072ee5b72d96b850d44a73237c Mon Sep 17 00:00:00 2001 From: Dean Michael Berris Date: Mon, 6 Feb 2017 01:48:21 +0000 Subject: [XRay][compiler-rt] Use gettid instead of getpid in FDR mode. Summary: This was pointed out that FDR mode didn't quite put the thread ID in the buffers, but instead would write down the parent process ID. Reviewers: pelikan, rSerge Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29484 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@294166 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/xray/xray_fdr_logging.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/xray') diff --git a/lib/xray/xray_fdr_logging.cc b/lib/xray/xray_fdr_logging.cc index 6e67b7deb..dd88df194 100644 --- a/lib/xray/xray_fdr_logging.cc +++ b/lib/xray/xray_fdr_logging.cc @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -200,8 +201,8 @@ void setupNewBuffer(const BufferQueue::Buffer &Buffer) XRAY_NEVER_INSTRUMENT { auto &NewBuffer = *reinterpret_cast(&Records[0]); NewBuffer.Type = RecordType::Metadata; NewBuffer.RecordKind = MetadataRecord::RecordKinds::NewBuffer; - pid_t Pid = getpid(); - std::memcpy(&NewBuffer.Data, &Pid, sizeof(pid_t)); + pid_t Tid = syscall(SYS_gettid); + std::memcpy(&NewBuffer.Data, &Tid, sizeof(pid_t)); } // Also write the WalltimeMarker record. -- cgit v1.2.3