diff options
author | Pedro Alves <palves@redhat.com> | 2016-06-30 11:55:22 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-06-30 11:59:19 +0100 |
commit | 038d48680941f014349256aeb7bab14b3f01d58e (patch) | |
tree | a21e72610b0dde63aeb3b76d67898fc21291e416 | |
parent | 994e9c834d916af85e0fe0e8c3e18259aa4be389 (diff) | |
download | gdb-038d48680941f014349256aeb7bab14b3f01d58e.zip gdb-038d48680941f014349256aeb7bab14b3f01d58e.tar.gz gdb-038d48680941f014349256aeb7bab14b3f01d58e.tar.bz2 |
Fix gdbserver/MI testing regression
Commit 51f77c3704a6 ("Add testing infrastruture bits for running with
MI on a separate UI") broke MI testing with native-gdbserver:
$ make check RUNTESTFLAGS="--target_board=native-gdbserver mi-var-child.exp"
...
Running .../src/binutils-gdb/gdb/testsuite/gdb.mi/mi-var-child.exp ...
can't unset "inferior_spawn_id": no such variable
while executing
"unset inferior_spawn_id"
(procedure "close_gdbserver" line 20)
invoked from within
"close_gdbserver"
...
When testing with gdbserver, gdb_exit is overridden with a special
version that calls close_gdbserver, which clears inferior_spawn_id.
The problem is that the commit mentioned above made
gdb_exit/mi_gdb_exit clear inferior_spawn_id too, and clearing a
non-existing variable is a tcl error.
Since gdb_exit/mi_gdb_exit always clears inferior_spawn_id now, the
fix is simply to stop clearing it in close_gdbserver.
gdb/testsuite/
2016-06-30 Pedro Alves <palves@redhat.com>
* lib/gdbserver-support.exp (close_gdbserver, gdb_exit): Don't
unset inferior_spawn_id.
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdbserver-support.exp | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index ab0d9e6..1362f09 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-06-30 Pedro Alves <palves@redhat.com> + * lib/gdbserver-support.exp (close_gdbserver, gdb_exit): Don't + unset inferior_spawn_id. + +2016-06-30 Pedro Alves <palves@redhat.com> + * lib/mi-support.exp (default_mi_gdb_start): Declare global FORCE_SEPARATE_MI_TTY, not SEPARATE_MI_TTY. diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp index 951afe5..b792b23 100644 --- a/gdb/testsuite/lib/gdbserver-support.exp +++ b/gdb/testsuite/lib/gdbserver-support.exp @@ -324,7 +324,7 @@ proc gdbserver_spawn { child_args } { # Close the GDBserver connection. proc close_gdbserver {} { - global server_spawn_id inferior_spawn_id + global server_spawn_id # We can't just call close, because if gdbserver is local then that means # that it will get a SIGHUP. Doing it this way could also allow us to @@ -340,7 +340,6 @@ proc close_gdbserver {} { catch "close -i $server_spawn_id" catch "wait -i $server_spawn_id" unset server_spawn_id - unset inferior_spawn_id } # Hook into GDB exit, and close GDBserver. @@ -349,7 +348,7 @@ if { [info procs gdbserver_gdb_exit] == "" } { rename gdb_exit gdbserver_orig_gdb_exit } proc gdb_exit {} { - global gdb_spawn_id server_spawn_id inferior_spawn_id + global gdb_spawn_id server_spawn_id global gdb_prompt global gdbserver_reconnect_p @@ -376,7 +375,6 @@ proc gdb_exit {} { -i "$server_spawn_id" eof { wait -i $expect_out(spawn_id) unset server_spawn_id - unset inferior_spawn_id } } } |