Messages in this thread | | | Date | Mon, 14 Feb 2011 16:06:56 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH 1/1] ptrace: make sure do_wait() won't hang after PTRACE_ATTACH |
| |
On 02/13, Denys Vlasenko wrote: > > For example, PTRACE_DETACH requires tracee to be stopped to succeed. > If debugger tries to detach while the tracee is running, it will get > an error. This forces debugger to do stupid things like sending SIGSTOP, > then waiting for tracee to stop, then doing PTRACE_DETACH, then > sending SIGCONT. Of course, while this dance is performed, > any SIGSTOPs/SIGCONTs which may be sent to the tracee by other processes > are totally disrupted by this.
Yes.
> The natural (for me) fix is to make PTRACE_DETACH work even on running > tracee. It simply makes a lot of sense. Why on earth do we need tracee > to be stopped? There is no reason.
Agreed, but
> But this is a change in ptrace behavior, and therefore is not acceptable > for Roland.
I agree with Roland. Not only this is too visible change, it is not clear what detach-with-signal can do if the tracee is not stopped.
This was (very briefly) discussed recently. Probably we can implement PTRACE_DETACH_RUNNING (the name is random) which doesn't require the stopped tracee but ignores the "data" argument.
Oleg.
| |