diff options
Diffstat (limited to 'hurd/hurdinit.c')
-rw-r--r-- | hurd/hurdinit.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c index e7558c3ef7..cd37065f93 100644 --- a/hurd/hurdinit.c +++ b/hurd/hurdinit.c @@ -30,6 +30,7 @@ int _hurd_exec_flags; struct hurd_port *_hurd_ports; unsigned int _hurd_nports; mode_t _hurd_umask; +sigset_t _hurdsig_traced; error_t _hurd_ports_use (int which, error_t (*operate) (mach_port_t)) @@ -78,6 +79,9 @@ _hurd_init (int flags, char **argv, else _hurd_umask = CMASK; + if (intarraysize > INIT_TRACEMASK) + _hurdsig_traced = intarray[INIT_TRACEMASK]; + /* All done with init ints and ports. */ __vm_deallocate (__mach_task_self (), (vm_address_t) intarray, @@ -147,11 +151,11 @@ _hurd_proc_init (char **argv) here, like _hurd_pid, are already initialized. */ RUN_HOOK (_hurd_proc_subinit, ()); - if (_hurd_exec_flags & EXEC_TRACED) + if (_hurdsig_traced) /* This process is "traced", meaning it should stop on signals or exec. We are all set up now to handle signals. Stop ourselves, to inform our parent (presumably a debugger) that the exec has completed. */ - __msg_sig_post (_hurd_msgport, SIGTRAP, __mach_task_self ()); + __msg_sig_post (_hurd_msgport, SIGTRAP, 0, __mach_task_self ()); } /* Called when we get a message telling us to change our proc server port. */ |