[compiler-rt] r308637 - [compiler-rt] Include thread ID into sanitizers logs

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 20 10:31:08 PDT 2017


Author: vitalybuka
Date: Thu Jul 20 10:31:08 2017
New Revision: 308637

URL: http://llvm.org/viewvc/llvm-project?rev=308637&view=rev
Log:
[compiler-rt] Include thread ID into sanitizers logs

Reviewers: kcc, alekseyshl

Subscribers: kubamracek, llvm-commits, dberris

Differential Revision: https://reviews.llvm.org/D35654

Added:
    compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/vreport.cc
Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cc?rev=308637&r1=308636&r2=308637&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cc Thu Jul 20 10:31:08 2017
@@ -260,16 +260,15 @@ static void SharedPrintfCode(bool append
                       "Buffer in Report is too short!\n"); \
       }
     if (append_pid) {
-      int pid = internal_getpid();
       const char *exe_name = GetProcessName();
       if (common_flags()->log_exe_name && exe_name) {
         needed_length += internal_snprintf(buffer, buffer_size,
                                            "==%s", exe_name);
         CHECK_NEEDED_LENGTH
       }
-      needed_length += internal_snprintf(buffer + needed_length,
-                                         buffer_size - needed_length,
-                                         "==%d==", pid);
+      needed_length +=
+          internal_snprintf(buffer + needed_length, buffer_size - needed_length,
+                            "==%d:%d==", internal_getpid(), GetTid());
       CHECK_NEEDED_LENGTH
     }
     needed_length += VSNPrintf(buffer + needed_length,
@@ -300,7 +299,7 @@ void Printf(const char *format, ...) {
   va_end(args);
 }
 
-// Like Printf, but prints the current PID before the output string.
+// Like Printf, but prints the current PID:TID before the output string.
 FORMAT(1, 2)
 void Report(const char *format, ...) {
   va_list args;

Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/vreport.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/vreport.cc?rev=308637&view=auto
==============================================================================
--- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/vreport.cc (added)
+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/vreport.cc Thu Jul 20 10:31:08 2017
@@ -0,0 +1,23 @@
+// RUN: %clangxx -O0 %s -o %t && %env_tool_opts=verbosity=10 %run %t 2>&1 | FileCheck %s
+
+#include <pthread.h>
+#include <stdio.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+void *thread(void *unused) {
+  printf("PID: %d\n", getpid());
+  printf("TID: %ld\n", syscall(SYS_gettid));
+  fflush(stdout);
+  return 0;
+}
+
+int main() {
+  pthread_t t;
+  pthread_create(&t, 0, thread, 0);
+  pthread_join(t, 0);
+  return 0;
+}
+// CHECK: PID: [[PID:[0-9]+]]
+// CHECK: TID: [[TID:[0-9]+]]
+// CHECK: ==[[PID]]:[[TID]]==




More information about the llvm-commits mailing list