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
This commit is contained in:
Simon Marchi 2021-05-10 12:13:36 -04:00
parent 23182ac0d8
commit 31aceaef1c
2 changed files with 10 additions and 4 deletions

View file

@ -1,3 +1,7 @@
2021-05-10 Simon Marchi <simon.marchi@polymtl.ca>
* nat/linux-waitpid.c (status_to_str): Show signal name.
2021-05-09 Andrew Burgess <andrew.burgess@embecosm.com>
* python/py-breakpoint.c (pybp_debug): New static global.

View file

@ -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));