Hi,
[ Ping and ml resubmission of gerrit review item
https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/760 . ]
The test-case gdb.server/server-kill-python.exp runs fine by itself:
...
Running src/gdb/testsuite/gdb.server/server-kill-python.exp ...
=== gdb Summary ===
nr of expected passes 3
...
But if we run f.i. gdb.server/file-transfer.exp before it, we get instead:
...
Running src/gdb/testsuite/gdb.server/server-kill-python.exp ...
ERROR: GDB process no longer exists
=== gdb Summary ===
nr of expected passes 13
nr of unresolved testcases 1
...
We can see the origin of the problem here:
...
spawn gdbserver --once localhost:2347 \
build/gdb/testsuite/outputs/gdb.server/file-transfer/file-transfer \
build/gdb/testsuite/outputs/gdb.server/server-kill-python/server-kill-python^M
Process build/gdb/testsuite/outputs/gdb.server/file-transfer/file-transfer
\ created; pid = 9464^M
Listening on port 2347^M
...
The spawn of the gdbserver for the server-kill-python test-case gets as
executable argument the file-transfer binary.
This is caused by proc gdbserver_spawn attempting to load the exec file in
$file_last_loaded. This is something that is meant to load the same exec in
the gdbserver that was earlier loaded into gdb.
In this test-case however, nothing has been loaded into gdb by the test-case,
and consequently we load the file that was loaded into gdb in the previous
test-case.
Fix this by unsetting $file_last_loaded in gdb_init.
Build and reg-tested on x86_64-linux.
OK for trunk?
Thanks,
- Tom
[gdb/testsuite] Fix UNRESOLVED in gdb.server/server-kill-python.exp
gdb/testsuite/ChangeLog:
2020-01-31 Tom de Vries <tdevries@suse.de>
PR testsuite/25488
* lib/gdb.exp (gdb_init): Unset $file_last_loaded.
---
gdb/testsuite/lib/gdb.exp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 2d230b791e..0a1080c34a 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5053,6 +5053,10 @@ proc gdb_init { test_file_name } {
set gdbserver_reconnect_p 1
unset gdbserver_reconnect_p
+ # Clear $last_loaded_file
+ global last_loaded_file
+ unset -nocomplain last_loaded_file
+
# Reset GDB number of instances
global gdb_instances
set gdb_instances 0