diff options
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/gdb_signals.h | 4 | ||||
-rw-r--r-- | gdb/common/signals.c | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/common/gdb_signals.h b/gdb/common/gdb_signals.h index 76e64f8..e02d1ee 100644 --- a/gdb/common/gdb_signals.h +++ b/gdb/common/gdb_signals.h @@ -42,6 +42,10 @@ extern int gdb_signal_to_host_p (enum gdb_signal signo); extern enum gdb_signal gdb_signal_from_host (int); extern int gdb_signal_to_host (enum gdb_signal); +/* Return the enum symbol name of SIG as a string, to use in debug + output. */ +extern const char *gdb_signal_to_symbol_string (enum gdb_signal sig); + /* Return the string for a signal. */ extern const char *gdb_signal_to_string (enum gdb_signal); diff --git a/gdb/common/signals.c b/gdb/common/signals.c index 8fe4bed..1f3e3a4 100644 --- a/gdb/common/signals.c +++ b/gdb/common/signals.c @@ -29,6 +29,7 @@ #endif #include "gdb_signals.h" +#include "gdb_assert.h" struct gdbarch; @@ -50,15 +51,23 @@ struct gdbarch; gdb_signal. */ static const struct { + const char *symbol; const char *name; const char *string; } signals [] = { -#define SET(symbol, constant, name, string) { name, string }, +#define SET(symbol, constant, name, string) { #symbol, name, string }, #include "gdb/signals.def" #undef SET }; +const char * +gdb_signal_to_symbol_string (enum gdb_signal sig) +{ + gdb_assert ((int) sig >= GDB_SIGNAL_FIRST && (int) sig <= GDB_SIGNAL_LAST); + + return signals[sig].symbol; +} /* Return the string for a signal. */ const char * |