[PATCH 0/8] Allow making GDB not automatically connect to the native target (and add "target native").

Pedro Alves
2014-03-17T15:23:10Z

Sometimes it's useful to be able to disable the automatic connection
to the native target. E.g., sometimes GDB disconnects from the
extended-remote target I was debugging, without me noticing it, and
then I do "run". That starts the program locally, and only after a
little head scratch session do I figure out the program is running
locally instead of remotely as intended. Same thing with "attach",
"info os", etc.

With this series, we now can have this instead:

(gdb) set auto-connect-native-target off
(gdb) target extended-remote :9999
...
*gdb disconnects*
(gdb) run
Don't know how to run. Try "help target".

To still be able to connect to the native target with
auto-connect-native-target set to off, I've renamed all native targets
to "target native", and made "target native" work instead of erroring
out as today.

E.g., before, on GNU/Linux and most native targets, the native target
is called "child", and trying to open it yields:

(gdb) target child
Use the "run" command to start a child process.

After the series we get:

(gdb) target native
Done. Use the "run" command to start a process.
(gdb) maint print target-stack
The current target stack is:
- native (Native process)
- exec (Local exec file)
- None (None)
(gdb) run
Starting program: ./a.out
...

I've also wanted this for the testsuite, when running against the
native-extended-gdbserver.exp board (runs against gdbserver in
extended-remote mode). With that board, it's always a bug to launch a
program with the native target. Turns out we still have one such case
this series catches:

(gdb) break main
Breakpoint 1 at 0x4009e5: file ../../../src/gdb/testsuite/gdb.base/coremaker.c, line 138.
(gdb) run
Don't know how to run. Try "help target".
(gdb) FAIL: gdb.base/corefile.exp: run: with core

For convenience, I've also put this at:
git@github.com:palves/gdb.git target_native_v1

Pedro Alves (8):
Rename "target djgpp" -> "target native"
Rename "target darwin-child" -> "target native"
Rename "target GNU" -> "target native"
Windows: Rename "target child" -> "target native"
nto-procfs.c: Add "target native".
go32-nat.c: Don't override to_open.
NEWS: Mention native target renames.
Allow making GDB not automatically connect to the native target.

gdb/NEWS | 21 +++
gdb/darwin-nat.c | 10 +-
gdb/doc/gdb.texinfo | 58 ++++++
gdb/gnu-nat.c | 8 +-
gdb/go32-nat.c | 16 +-
gdb/inf-child.c | 62 +++++-
gdb/inf-child.h | 11 ++
gdb/inf-ptrace.c | 6 +-
gdb/inf-ttrace.c | 10 +-
gdb/linux-nat.c | 8 +
gdb/nto-procfs.c | 97 +++++++---
gdb/procfs.c | 13 +-
gdb/target.c | 48 ++++-
gdb/testsuite/boards/native-extended-gdbserver.exp | 2 +
.../gdb.base/auto-connect-native-target.c | 23 +++
.../gdb.base/auto-connect-native-target.exp | 209 +++++++++++++++++++++
gdb/windows-nat.c | 10 +-
17 files changed, 531 insertions(+), 81 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/auto-connect-native-target.c
create mode 100644 gdb/testsuite/gdb.base/auto-connect-native-target.exp

--
1.7.11.7