Messages in this thread |  | | Subject | Re: PTRACE_ATTACH breaks wait4() | Date | Fri, 08 Jun 2001 09:47:20 +0100 | From | David Howells <> |
| |
I have an idea for getting around this problem, but it's only half implemented at the moment (I use it for implementing a Wine server in the kernel). It involves having a list things called task ornaments attached to each process. Each ornament has a table of event notification methods (so it can be informed about fork, execve, signal and exit events). Signal event notification methods are able to prevent a signal from propegating further down the chain, and the parent's wait handler would be the last element in this list. When a process attaches with ptrace(), it would insert another ornament into this list, before the parent's ornament. This means (a) the process doesn't have to be reparented, and (b) more than one debugger can actually attach to a process (eg: strace and gdb both).
This would, however, mean that wait*() would have to not only look at a process's list of children, but also it's list of processes it has ornamented via ptrace
David - 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/
|  |