mirror of
https://git.freebsd.org/ports.git
synced 2025-05-21 19:35:28 -04:00
- Handle version 1a of NT_PRPSINFO notes which include the pr_pid field. - Replace patch-sigev with upstream version. Note that upstream GDB doesn't define SIGLIBRT on older OS versions, so do that in the port Makefile instead. - Use PT_GET_EVENT_MASK/PT_SET_EVENT_MASK (new in 12). - Fix a bug where fork and LWP events weren't enabled in new child processes when following child processes after a fork. - Handle "real" vfork done events via PTRACE_VFORK (new in 12). PR: 211254 Approved by: luca.pizzamiglio@gmail.com (maintainer)
102 lines
3.2 KiB
Text
102 lines
3.2 KiB
Text
commit bc7b765ab71f967eb2a9c3da111d7529eec46fbe
|
|
Author: John Baldwin <jhb@FreeBSD.org>
|
|
Date: Sun Jul 3 11:56:21 2016 -0700
|
|
|
|
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.
|
|
|
|
diff --git gdb/common/signals.c gdb/common/signals.c
|
|
index 45c0c73..f84935d 100644
|
|
--- gdb/common/signals.c
|
|
+++ gdb/common/signals.c
|
|
@@ -331,6 +331,10 @@ gdb_signal_from_host (int hostsig)
|
|
if (hostsig == SIGINFO)
|
|
return GDB_SIGNAL_INFO;
|
|
#endif
|
|
+#if defined (SIGLIBRT)
|
|
+ if (hostsig == SIGLIBRT)
|
|
+ return GDB_SIGNAL_LIBRT;
|
|
+#endif
|
|
|
|
#if defined (REALTIME_LO)
|
|
if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI)
|
|
@@ -584,6 +588,10 @@ do_gdb_signal_to_host (enum gdb_signal oursig,
|
|
case GDB_SIGNAL_INFO:
|
|
return SIGINFO;
|
|
#endif
|
|
+#if defined (SIGLIBRT)
|
|
+ case GDB_SIGNAL_LIBRT:
|
|
+ return SIGLIBRT;
|
|
+#endif
|
|
|
|
default:
|
|
#if defined (REALTIME_LO)
|
|
diff --git gdb/infrun.c gdb/infrun.c
|
|
index 70a0790..257ac8a 100644
|
|
--- gdb/infrun.c
|
|
+++ gdb/infrun.c
|
|
@@ -9409,6 +9409,8 @@ leave it stopped or free to run as needed."),
|
|
signal_print[GDB_SIGNAL_WAITING] = 0;
|
|
signal_stop[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. */
|
|
signal_cache_update (-1);
|
|
diff --git gdb/proc-events.c gdb/proc-events.c
|
|
index b291d31..daa6f58 100644
|
|
--- gdb/proc-events.c
|
|
+++ gdb/proc-events.c
|
|
@@ -1536,6 +1536,9 @@ static struct trans signal_table[] =
|
|
#ifdef SIGAIO
|
|
{ SIGAIO, "SIGAIO", "Asynchronous I/O signal" },
|
|
#endif
|
|
+#ifdef SIGLIBRT
|
|
+ { SIGLIBRT, "SIGLIBRT", "Used by librt" },
|
|
+#endif
|
|
|
|
/* FIXME: add real-time signals. */
|
|
};
|
|
diff --git include/gdb/ChangeLog include/gdb/ChangeLog
|
|
index f05ba4b..05f127e 100644
|
|
--- include/gdb/ChangeLog
|
|
+++ include/gdb/ChangeLog
|
|
@@ -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>
|
|
|
|
* remote-sim.h (sim_open): Mark argv const.
|
|
diff --git include/gdb/signals.def include/gdb/signals.def
|
|
index 61cc88c..2b30e71 100644
|
|
--- include/gdb/signals.def
|
|
+++ include/gdb/signals.def
|
|
@@ -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_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. */
|
|
|
|
/* 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")
|