summaryrefslogtreecommitdiffstats
path: root/bfd/elf32-h8300.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-03-22 14:52:26 +0000
committerPedro Alves <palves@redhat.com>2013-03-22 14:52:26 +0000
commit3e74e146f297ec074e10c2b9a9e5869ec536649d (patch)
treea70fef9e357cd0b8ac7b9817c8703162883a9e28 /bfd/elf32-h8300.c
parenta2213dca1813bee3244f7f948b26d0ef717ddb04 (diff)
downloadppe42-binutils-3e74e146f297ec074e10c2b9a9e5869ec536649d.tar.gz
ppe42-binutils-3e74e146f297ec074e10c2b9a9e5869ec536649d.zip
Linux: No need to set ptrace event options in fork/clone children.
Oleg Nesterov told me that the Linux kernel copies the parent's ptrace options to fork/clone children, so there's no need for GDB to do that manually. I was actually a bit surprised, since I thought the ptracer had to always set the ptrace options itself, and GDB is indeed calling PTRACE_SETOPTIONS for each new fork child, if it'll stay attached. Looking at the history of that code, I found that is was actually I who added that set-ptrace-options-in-children bit, back in http://sourceware.org/ml/gdb-patches/2009-05/msg00656.html. But, honestly, I don't recall why I needed that. I think I may have just blindly believed it was necessary. I then looked back at the history of all the PTRACE_SETOPTIONS code we have, and found that gdb never did copy the ptrace options before my patch. But, when gdbserver learnt to use PTRACE_EVENT_CLONE, at http://sourceware.org/ml/gdb-patches/2007-10/msg00547.html, it was made to do 'ptrace (PTRACE_SETOPTIONS, new_pid, 0, PTRACE_O_TRACECLONE)' for all new clones. Hmmm. But, GDB itself never did that, so it can't really ever have been necessary, I believe, otherwise GDB should have been doing it too. (GDBserver doesn't support following forks, and so naturally doesn't do any PTRACE_SETOPTIONS on fork children.) So this patch removes the -I believe- unnecessary ptrace syscalls. Tested on x86_64 Fedora 17, native/gdbserver, and on x86_64 RHEL5 native/gdbserver (Linux 2.6.18, I think a ptrace-on-utrace kernel). No regressions. gdb/ 2013-03-22 Pedro Alves <palves@redhat.com> * linux-nat.c (linux_child_follow_fork): Don't call linux_enable_event_reporting. (linux_handle_extended_wait): Don't call linux_enable_event_reporting. gdb/gdbserver/ 2013-03-22 Pedro Alves <palves@redhat.com> * linux-low.c (handle_extended_wait): Don't call linux_enable_event_reporting.
Diffstat (limited to 'bfd/elf32-h8300.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud