diff options
author | Pedro Alves <palves@redhat.com> | 2020-05-16 18:59:10 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2020-05-16 18:59:10 +0100 |
commit | 7cfd74cfc6e14034779e6cc048c68877b7a08f88 (patch) | |
tree | 3ed186de3f8db31030312bbac9eae420b3e81bb9 | |
parent | 7d93a1e0b6af703c75daa93456608f8bb5f34f13 (diff) | |
download | binutils-7cfd74cfc6e14034779e6cc048c68877b7a08f88.zip binutils-7cfd74cfc6e14034779e6cc048c68877b7a08f88.tar.gz binutils-7cfd74cfc6e14034779e6cc048c68877b7a08f88.tar.bz2 |
Fix gdb.multi/multi-re-run.exp with native-gdbserver
The new exec-file-mismatch feature reveals that when running
gdb.multi/multi-re-run.exp against --target_board=native-gdbserver,
we've been starting gdbserver with the wrong program:
(gdb) spawn /home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/testsuite/../../gdbserver/gdbserver --once localhost:2347 /home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/te
stsuite/outputs/gdb.multi/multi-re-run/multi-re-run-2
Process /home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/testsuite/outputs/gdb.multi/multi-re-run/multi-re-run-2 created; pid = 6280
Listening on port 2347
target remote localhost:2347
Remote debugging using localhost:2347
warning: Mismatch between current exec-file /home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/testsuite/outputs/gdb.multi/multi-re-run/multi-re-run-1
and automatically determined exec-file /home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/testsuite/outputs/gdb.multi/multi-re-run/multi-re-run-2
exec-file-mismatch handling is currently "ask"
Load new symbol table from "/home/pedro/brno/pedro/gdb/binutils-gdb/build/gdb/testsuite/outputs/gdb.multi/multi-re-run/multi-re-run-2"? (y or n) Quit
(gdb) FAIL: gdb.multi/multi-re-run.exp: re_run_inf=1: iter=1: running to all_started in runto
The problem is that gdb_reload uses the last loaded file as binary to
spawn, but we load the program for inferior 2 and then switch to
inferior 1 and run it, so the last loaded file is the program for
inferior 2.
Fix this by tweaking last_loaded_file.
gdb/testsuite/ChangeLog:
2020-05-16 Pedro Alves <palves@redhat.com>
* gdb.multi/multi-re-run.exp (test_re_run): Switch
LAST_LOADED_FILE accordingly.
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.multi/multi-re-run.exp | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c57ddf5..0be2fd3 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-05-16 Pedro Alves <palves@redhat.com> + + * gdb.multi/multi-re-run.exp (test_re_run): Switch + LAST_LOADED_FILE accordingly. + 2020-05-15 Philippe Waroquiers <philippe.waroquiers@skynet.be> * gdb.base/alias.exp: Verify 'help aliases' shows user defined aliases. diff --git a/gdb/testsuite/gdb.multi/multi-re-run.exp b/gdb/testsuite/gdb.multi/multi-re-run.exp index 93cd709..a243293 100644 --- a/gdb/testsuite/gdb.multi/multi-re-run.exp +++ b/gdb/testsuite/gdb.multi/multi-re-run.exp @@ -51,6 +51,7 @@ proc test_re_run {re_run_inf} { global binfile1 binfile2 global inferior_exited_re global gdb_prompt + global last_loaded_file clean_restart ${binfile1} @@ -65,12 +66,17 @@ proc test_re_run {re_run_inf} { if {$re_run_inf == 1} { set steady_inf 2 + set steady_binfile $binfile2 + set re_run_binfile $binfile1 } else { set steady_inf 1 + set steady_binfile $binfile1 + set re_run_binfile $binfile2 } gdb_test "inferior $steady_inf" "Switching to inferior $steady_inf.*" \ "switch to steady inferior" + set last_loaded_file $steady_binfile # Run the steady inferior to a breakpoint, and let it stay stopped # there. @@ -81,6 +87,7 @@ proc test_re_run {re_run_inf} { gdb_test "inferior $re_run_inf" "Switching to inferior $re_run_inf.*" \ "switch to re-run inferior" + set last_loaded_file $re_run_binfile # Now run the RE_RUN_INF inferior a couple times. GDB used to # have a bug that caused the second run to fail to load |