gdbserver: set ptrace flags after creating inferiors
authorJosh Stone <jistone@redhat.com>
Fri, 4 Dec 2015 21:28:07 +0000 (13:28 -0800)
committerJosh Stone <jistone@redhat.com>
Sat, 5 Dec 2015 02:25:26 +0000 (18:25 -0800)
commitece66d651004eac0210217c4d48babf4e80d1f2e
tree4033870f99986038ba2eaa491d2d4b4e31dcfc52
parentcc51fd4ccfdca1559efb0351b498bd8c0f3d1eed
gdbserver: set ptrace flags after creating inferiors

Rename target_ops.arch_setup to .post_create_inferior.  In the Linux
hook, continue calling the low arch setup, then also set ptrace flags.
This corrects the possibility of running without flags, demonstrated by
a new test that would fail to catch a fork before.

gdb/gdbserver/ChangeLog:

2015-12-04  Josh Stone  <jistone@redhat.com>

* target.h (struct target_ops) <arch_setup>: Rename to ...
(struct target_ops) <post_create_inferior>: ... this.
(target_arch_setup): Rename to ...
(target_post_create_inferior): ... this, calling post_create_inferior.
* server.c (start_inferior): Update target_arch_setup calls to
target_post_create_inferior.
* linux-low.c (linux_low_ptrace_options): Forward declare.
(linux_arch_setup): Update its comment for general use.
(linux_post_create_inferior): New, run arch_setup and setup ptrace.
(struct linux_target_ops): Use linux_post_create_inferior.
* lynx-low.c (struct lynx_target_ops): Update arch_setup stub comment
to post_create_inferior.
* nto-low.c (struct nto_target_ops): Likewise.
* spu-low.c (struct spu_target_ops): Likewise.
* win32-low.c (struct win32_target_ops): Likewise.

gdb/testsuite/ChangeLog:

2015-12-04  Josh Stone  <jistone@redhat.com>

* gdb.base/catch-fork-static.exp: New.
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/gdbserver/lynx-low.c
gdb/gdbserver/nto-low.c
gdb/gdbserver/server.c
gdb/gdbserver/spu-low.c
gdb/gdbserver/target.h
gdb/gdbserver/win32-low.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/catch-fork-static.exp [new file with mode: 0644]