From 31aceaef1cba910c84b81c78064d226fd10d8976 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 10 May 2021 12:13:36 -0400 Subject: [PATCH] gdb, gdbserver: make status_to_str display the signal name I was looking at some "set debug lin-lwp" logs, and saw that a thread received the "Child exited" signal. It took me a moment to realize that this was SIGCHLD. I then thought that it would be nice for status_to_str to show the signal name (SIGCHLD) in addition to the description "Child exited", since people are much more used to referring to signals using their names. Fortunately, libiberty contains a handy function to get the signal name from the signal number, strsigno, use that. The output of "set debug lin-lwp" now looks like: [linux-nat] linux_nat_wait_1: waitpid 1209631 received SIGTRAP - Trace/breakpoint trap (stopped) gdb/ChangeLog: * nat/linux-waitpid.c (status_to_str): Show signal name. Change-Id: I8ad9b1e744dd64461fd87b08d5c29f9ef97c4691 --- gdb/ChangeLog | 4 ++++ gdb/nat/linux-waitpid.c | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8fa6980234..52d5faac8a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2021-05-10 Simon Marchi + + * nat/linux-waitpid.c (status_to_str): Show signal name. + 2021-05-09 Andrew Burgess * python/py-breakpoint.c (pybp_debug): New static global. diff --git a/gdb/nat/linux-waitpid.c b/gdb/nat/linux-waitpid.c index f205df7a24..99489040fb 100644 --- a/gdb/nat/linux-waitpid.c +++ b/gdb/nat/linux-waitpid.c @@ -32,14 +32,16 @@ status_to_str (int status) if (WIFSTOPPED (status)) { if (WSTOPSIG (status) == SYSCALL_SIGTRAP) - return string_printf ("%s (stopped at syscall)", - strsignal (SIGTRAP)); + return string_printf ("%s - %s (stopped at syscall)", + strsigno (SIGTRAP), strsignal (SIGTRAP)); else - return string_printf ("%s (stopped)", + return string_printf ("%s - %s (stopped)", + strsigno (WSTOPSIG (status)), strsignal (WSTOPSIG (status))); } else if (WIFSIGNALED (status)) - return string_printf ("%s (terminated)", + return string_printf ("%s - %s (terminated)", + strsigno (WTERMSIG (status)), strsignal (WTERMSIG (status))); else return string_printf ("%d (exited)", WEXITSTATUS (status)); -- 2.34.1