Commit 36194fe4 authored by Kai Wang's avatar Kai Wang Committed by Dave Watson

Print linux TID while crashing

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
parent 3468cb59
......@@ -19,6 +19,7 @@
#include <folly/experimental/symbolizer/SignalHandler.h>
#include <sys/types.h>
#include <sys/syscall.h>
#include <atomic>
#include <ctime>
#include <mutex>
......@@ -205,8 +206,10 @@ void dumpSignalInfo(int signum, siginfo_t* siginfo) {
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");
}
......
......@@ -60,7 +60,8 @@ TEST(SignalHandler, Simple) {
"^\\*\\*\\* 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"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment