diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 0b19ab1dbf68..c3be1f6015b3 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -985,6 +985,8 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) } else { pl->pl_flags = 0; } + pl->pl_sigmask = td2->td_sigmask; + pl->pl_siglist = td2->td_siglist; _PRELE(p); PROC_UNLOCK(p); return (0); diff --git a/sys/sys/ptrace.h b/sys/sys/ptrace.h index 93b1a7d6d0fc..8fd52cb4451e 100644 --- a/sys/sys/ptrace.h +++ b/sys/sys/ptrace.h @@ -33,6 +33,8 @@ #ifndef _SYS_PTRACE_H_ #define _SYS_PTRACE_H_ +#include + #define PT_TRACE_ME 0 /* child declares it's being traced */ #define PT_READ_I 1 /* read word in child's I space */ #define PT_READ_D 2 /* read word in child's D space */ @@ -92,6 +94,8 @@ struct ptrace_lwpinfo { int pl_flags; /* LWP flags. */ #define PL_FLAG_SA 0x01 /* M:N thread */ #define PL_FLAG_BOUND 0x02 /* M:N bound thread */ + sigset_t pl_sigmask; /* LWP signal mask */ + sigset_t pl_siglist; /* LWP pending signal */ }; #ifdef _KERNEL