Pass SIGLIBRT directly to child processes.
FreeBSD's librt uses SIGLIBRT as an internal signal to implement SIGEV_THREAD sigevent notifications. Similar to SIGLWP or SIGCANCEL this signal should be passed through to child processes by default. include/ChangeLog: * signals.def: Add GDB_SIGNAL_LIBRT. gdb/ChangeLog: * common/signals.c (gdb_signal_from_host): Handle SIGLIBRT. (do_gdb_signal_to_host): Likewise. * infrun.c (_initialize_infrun): Pass GDB_SIGNAL_LIBRT through to programs. * proc-events.c (signal_table): Add entry for SIGLIBRT.
This commit is contained in:
parent
f7e8b360fe
commit
bc7b765ab7
6 changed files with 28 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2016-07-15 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
|
* common/signals.c (gdb_signal_from_host): Handle SIGLIBRT.
|
||||||
|
(do_gdb_signal_to_host): Likewise.
|
||||||
|
* infrun.c (_initialize_infrun): Pass GDB_SIGNAL_LIBRT through to
|
||||||
|
programs.
|
||||||
|
* proc-events.c (signal_table): Add entry for SIGLIBRT.
|
||||||
|
|
||||||
2016-07-14 Tom Tromey <tom@tromey.com>
|
2016-07-14 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* python/py-breakpoint.c (gdbpy_breakpoint_deleted): Add missing
|
* python/py-breakpoint.c (gdbpy_breakpoint_deleted): Add missing
|
||||||
|
|
|
@ -331,6 +331,10 @@ gdb_signal_from_host (int hostsig)
|
||||||
if (hostsig == SIGINFO)
|
if (hostsig == SIGINFO)
|
||||||
return GDB_SIGNAL_INFO;
|
return GDB_SIGNAL_INFO;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined (SIGLIBRT)
|
||||||
|
if (hostsig == SIGLIBRT)
|
||||||
|
return GDB_SIGNAL_LIBRT;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined (REALTIME_LO)
|
#if defined (REALTIME_LO)
|
||||||
if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI)
|
if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI)
|
||||||
|
@ -584,6 +588,10 @@ do_gdb_signal_to_host (enum gdb_signal oursig,
|
||||||
case GDB_SIGNAL_INFO:
|
case GDB_SIGNAL_INFO:
|
||||||
return SIGINFO;
|
return SIGINFO;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined (SIGLIBRT)
|
||||||
|
case GDB_SIGNAL_LIBRT:
|
||||||
|
return SIGLIBRT;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
#if defined (REALTIME_LO)
|
#if defined (REALTIME_LO)
|
||||||
|
|
|
@ -9409,6 +9409,8 @@ leave it stopped or free to run as needed."),
|
||||||
signal_print[GDB_SIGNAL_WAITING] = 0;
|
signal_print[GDB_SIGNAL_WAITING] = 0;
|
||||||
signal_stop[GDB_SIGNAL_CANCEL] = 0;
|
signal_stop[GDB_SIGNAL_CANCEL] = 0;
|
||||||
signal_print[GDB_SIGNAL_CANCEL] = 0;
|
signal_print[GDB_SIGNAL_CANCEL] = 0;
|
||||||
|
signal_stop[GDB_SIGNAL_LIBRT] = 0;
|
||||||
|
signal_print[GDB_SIGNAL_LIBRT] = 0;
|
||||||
|
|
||||||
/* Update cached state. */
|
/* Update cached state. */
|
||||||
signal_cache_update (-1);
|
signal_cache_update (-1);
|
||||||
|
|
|
@ -1536,6 +1536,9 @@ static struct trans signal_table[] =
|
||||||
#ifdef SIGAIO
|
#ifdef SIGAIO
|
||||||
{ SIGAIO, "SIGAIO", "Asynchronous I/O signal" },
|
{ SIGAIO, "SIGAIO", "Asynchronous I/O signal" },
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef SIGLIBRT
|
||||||
|
{ SIGLIBRT, "SIGLIBRT", "Used by librt" },
|
||||||
|
#endif
|
||||||
|
|
||||||
/* FIXME: add real-time signals. */
|
/* FIXME: add real-time signals. */
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2016-07-15 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
|
* signals.def: Add GDB_SIGNAL_LIBRT.
|
||||||
|
|
||||||
2016-01-06 Mike Frysinger <vapier@gentoo.org>
|
2016-01-06 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
* remote-sim.h (sim_open): Mark argv const.
|
* remote-sim.h (sim_open): Mark argv const.
|
||||||
|
|
|
@ -194,7 +194,9 @@ SET (GDB_EXC_EMULATION, 148, "EXC_EMULATION", "Emulation instruction")
|
||||||
SET (GDB_EXC_SOFTWARE, 149, "EXC_SOFTWARE", "Software generated exception")
|
SET (GDB_EXC_SOFTWARE, 149, "EXC_SOFTWARE", "Software generated exception")
|
||||||
SET (GDB_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
|
SET (GDB_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
|
||||||
|
|
||||||
|
SET (GDB_SIGNAL_LIBRT, 151, "SIGLIBRT", "librt internal signal")
|
||||||
|
|
||||||
/* If you are adding a new signal, add it just above this comment. */
|
/* If you are adding a new signal, add it just above this comment. */
|
||||||
|
|
||||||
/* Last and unused enum value, for sizing arrays, etc. */
|
/* Last and unused enum value, for sizing arrays, etc. */
|
||||||
SET (GDB_SIGNAL_LAST, 151, NULL, "GDB_SIGNAL_LAST")
|
SET (GDB_SIGNAL_LAST, 152, NULL, "GDB_SIGNAL_LAST")
|
||||||
|
|
Loading…
Reference in a new issue