Clear ps_xsig when continuing after a PS_TRACED stop.
authorclaudio <claudio@openbsd.org>
Wed, 9 Oct 2024 08:58:19 +0000 (08:58 +0000)
committerclaudio <claudio@openbsd.org>
Wed, 9 Oct 2024 08:58:19 +0000 (08:58 +0000)
commit133ff0d47253c901f689dc0e72195c7b6ec63bfa
tree648cb62587288182d8be85295d5dc8f6be5b7641
parent2d5a42141c9ba258f3db4b3f809b4ec766927ba2
Clear ps_xsig when continuing after a PS_TRACED stop.

Also remove the ps_xsig handling in setrunnable() it is in the wrong spot
and causes signals to be delivered over and over again.

Attaching to an already stopped process is affected by this. The SIGSTOP
sent by ptrace is now ignored in ptsignal() and as a result gdb will hang
in wait4() until a SIGCONT is delivered to the process. After that all
works as usual.

OK mpi@
sys/kern/kern_sig.c
sys/kern/sched_bsd.c