Messages in this thread | | | Date | Sun, 20 Feb 2011 22:20:53 +0100 | From | Jan Kratochvil <> | Subject | Re: [PATCH 1/1] ptrace: make sure do_wait() won't hang after PTRACE_ATTACH |
| |
On Sun, 20 Feb 2011 21:38:19 +0100, Oleg Nesterov wrote: > On 02/20, Jan Kratochvil wrote: > > If I do (on kernel-debug-2.6.35.11-83.fc14.x86_64) > > ptrace (PTRACE_ATTACH); > > sleep (1); > > ptrace (PTRACE_DETACH, 0); > > > > even without the wait() it really has no effect. > > Well. what does this "has no effect" mean? ;) I am totally confused. > We were talking about the case when the tracee was stopped before > attach, right?
No, the case it is not `(T) stopped'. I was surprised by this ptrace behavior but it is offtopic and not useful so let's drop it.
> So. So far I assume you are not against this change ;)
No, although you should provide the patch in advance, it would be nice to also post it first to <gdb@sourceware.org> for comments.
Now if new GDB should allow inferior functions calls on previously `(T) stopped' process doing PTRACE_CONT(SIGCONT) for executing the call should be harmless but how to make it `(T) stopped' afterwards? PTRACE_CONT(SIGSTOP) right after the inferior call will make the old kernels run the inferior - we do not want that. GDB can only wait till the end of debugging session and do PTRACE_DETACH(SIGSTOP). But we are back at the point if GDB crashes in between the inferior will accidentally resume.
(This is the ``(T) stopped' preservation after _exit()' thread along claimed to be unrelated.)
Thanks, Jan
| |