Summary:
For servers using GLOG, all thread ID are get from gettid system call. So it
is very useful if we print this ID so during debugging I can find the log
of crashing thread.
I'm not sure who should review this diff. Just found you guys from previous
diffs touched this file :)
Test Plan:
See the crash log.
*** Aborted at
1419029404 (Unix time, try 'date -d @
1419029404') ***
*** Signal 11 (SIGSEGV) (0x18) received by PID 18852 (pthread TID 0x7f52a1fff700) (linux TID 27908), stack trace: ***
Reviewed By: tudorb@fb.com
Subscribers: seanc, folly-diffs@
FB internal diff:
D1752301
Signature: t1:
1752301:
1419032887:
e43c2ace6914e54812149a8b8e84eaffaf42a09c
#include <folly/experimental/symbolizer/SignalHandler.h>
#include <sys/types.h>
+#include <sys/syscall.h>
#include <atomic>
#include <ctime>
#include <mutex>
printHex(reinterpret_cast<uint64_t>(siginfo->si_addr));
print(") received by PID ");
printDec(getpid());
- print(" (TID ");
+ print(" (pthread TID ");
printHex((uint64_t)pthread_self());
+ print(") (linux TID ");
+ printDec(syscall(__NR_gettid));
print("), stack trace: ***\n");
}
"^\\*\\*\\* Aborted at [0-9]+ \\(Unix time, try 'date -d @[0-9]+'\\) "
"\\*\\*\\*\n"
"\\*\\*\\* Signal 11 \\(SIGSEGV\\) \\(0x2a\\) received by PID [0-9]+ "
- "\\(TID 0x[0-9a-f]+\\), stack trace: \\*\\*\\*\n"
+ "\\(pthread TID 0x[0-9a-f]+\\) \\(linux TID [0-9]+\\), "
+ "stack trace: \\*\\*\\*\n"
".*\n"
" @ [0-9a-f]+ folly::symbolizer::test::SignalHandler_Simple_Test"
"::TestBody\\(\\)\n"