From b50caa4b10cf37be0be6c1694170307b2d677073 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Mon, 21 Mar 2016 21:26:57 +0800 Subject: [PATCH] global/signale_handler: print thread name in signal handle. Now most thread has own thread name. So print thread name in signal handle. Signed-off-by: Jianpeng Ma --- src/global/signal_handler.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/global/signal_handler.cc b/src/global/signal_handler.cc index 6254646865d43..e202257efaefe 100644 --- a/src/global/signal_handler.cc +++ b/src/global/signal_handler.cc @@ -91,14 +91,18 @@ static void handle_fatal_signal(int signum) // case, SA_RESETHAND specifies that the default signal handler-- // presumably dump core-- will handle it. char buf[1024]; + char pthread_name[16] = {0}; //limited by 16B include terminating null byte. + int r = pthread_getname_np(pthread_self(), pthread_name, sizeof(pthread_name)); #if defined(__sun) char message[SIG2STR_MAX]; sig2str(signum,message); snprintf(buf, sizeof(buf), "*** Caught signal (%s) **\n " - "in thread %llx\n", message, (unsigned long long)pthread_self()); + "in thread %llx thread_name:%s\n", message, (unsigned long long)pthread_self(), + pthread_name); #else snprintf(buf, sizeof(buf), "*** Caught signal (%s) **\n " - "in thread %llx\n", sig_str(signum), (unsigned long long)pthread_self()); + "in thread %llx thread_name:%s\n", sig_str(signum), (unsigned long long)pthread_self(), + pthread_name); #endif dout_emergency(buf); pidfile_remove(); -- 2.39.5