WIP(ptrace): Only use non-signal stack when using a default handler
This is a curious problem and it's really hard to solve it in a way that doesn't feel hacky. On one hand, of course you want to be able to modify and intercept what happens when you use a signal, right? On the other hand, changes made to the context (especially singlestepping) while a signal is handled (such as `SIGSTOP`) are not preserved since the stack is restored after the signal handler was invoked. I think what we have in this change makes sense anyway, as we don't really want users modifying registers and other data in the default signal behavior that occurs **in kernel mode**. Also trying to use `PTRACE_SINGLESTEP` will set the singlestep flag only if in a user-mode signal handler, else it will set it on the instruction after the signal handling, which I guess makes sense since it can't affect the kernel-mode code that runs the default handler. I don't know. Help. Pls.
Showing with 43 additions and 12 deletions