Messages in this thread | | | Date | Wed, 15 Jan 2003 15:27:51 -0500 | From | Daniel Jacobowitz <> | Subject | Re: 2.4.x, can't ptrace a task created with clone() ? |
| |
On Wed, Jan 15, 2003 at 04:34:58PM +0000, Daniel Barlow wrote: > > Tested with 4.2.20 and 2.4.21-pre3, after PTRACE_ATTACHing to a > process I created with clone(), wait() returns ECHILD . strace > of the parent shows > > clone(child_stack=0x80599a8, flags=CLONE_VM) = 1292 > rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 > rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0 > rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 > nanosleep({5, 0}, {5, 0}) = 0 > ptrace(PTRACE_ATTACH, 1292, 0, 0) = 0 > --- SIGCHLD (Child exited) --- > wait4(-1, 0xbffffbf0, 0, NULL) = -1 ECHILD (No child processes) > write(2, "waitpid: No child processes\n", 28) = 28 > > If I replace the clone in my test program with a fork, everything > works as I expected. Is this a bug, or are my expectations at fault? > if the latter, how _do_ I attach to one of my cloned children?
You did attach. But if you want to wait for a cloned child, you need to use __WCLONE or __WALL.
-- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |