Messages in this thread | | | Date | Sun, 25 Oct 2015 16:42:56 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH 0/2] wait/ptrace: always assume __WALL if the child is traced |
| |
On 10/22, Pedro Alves wrote: > > In any case, to make sure existing gdb binaries would still work > with your kernel change, I ran GDB's testsuite with this: > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > diff --git a/gdb/nat/linux-waitpid.c b/gdb/nat/linux-waitpid.c > index cbcdd95..864ba2e 100644 > --- a/gdb/nat/linux-waitpid.c > +++ b/gdb/nat/linux-waitpid.c > @@ -149,3 +149,17 @@ my_waitpid (int pid, int *status, int flags) > errno = out_errno; > return ret; > } > + > +#include <dlfcn.h> > + > +pid_t > +waitpid (pid_t pid, int *status, int options) > +{ > + static pid_t (*waitpid2) (pid_t pid, int *status, int options) = NULL; > + > + if (waitpid2 == NULL) > + waitpid2 = dlsym (RTLD_NEXT, "waitpid"); > + > + options |= __WALL; > + return waitpid2 (pid, status, options); > +} > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks a lot Pedro!
So gdb should be fine, strace too. Perhaps we should change the kernel this way and forget about /sbin/init fixes.
Oleg.
| |