summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sig.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-01-25 10:59:21 +0000
committerkib <kib@FreeBSD.org>2011-01-25 10:59:21 +0000
commit72112368cfef3fb8d740abf0ef9b4024db441d68 (patch)
tree8bd4ca91acf483d0b07a7a1a8c354a245fa549b1 /sys/kern/kern_sig.c
parentab3c67159918d2800cfde8043251533028ab1e5a (diff)
downloadFreeBSD-src-72112368cfef3fb8d740abf0ef9b4024db441d68.zip
FreeBSD-src-72112368cfef3fb8d740abf0ef9b4024db441d68.tar.gz
Allow debugger to specify that children of the traced process should be
automatically traced. Extend the ptrace(PL_LWPINFO) to report that child just forked. Reviewed by: davidxu, jhb MFC after: 2 weeks
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r--sys/kern/kern_sig.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index c37b974..ffa1633 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -2393,6 +2393,10 @@ ptracestop(struct thread *td, int sig)
p->p_xthread = td;
p->p_flag |= (P_STOPPED_SIG|P_STOPPED_TRACE);
sig_suspend_threads(td, p, 0);
+ if ((td->td_dbgflags & TDB_STOPATFORK) != 0) {
+ td->td_dbgflags &= ~TDB_STOPATFORK;
+ cv_broadcast(&p->p_dbgwait);
+ }
stopme:
thread_suspend_switch(td);
if (!(p->p_flag & P_TRACED)) {
OpenPOWER on IntegriCloud