Message ID | 20200210122802.GA19962@delia |
---|---|
State | New |
Headers | show |
On 2/10/20 9:28 AM, Tom de Vries wrote: > 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 > Thanks for fixing this. I ran into this a few times. The patch LGTM.
>>>>> "Luis" == Luis Machado <luis.machado@linaro.org> writes: >> + # Clear $last_loaded_file >> + global last_loaded_file >> + unset -nocomplain last_loaded_file Luis> Thanks for fixing this. I ran into this a few times. Luis> The patch LGTM. Looks good to me as well. Thank you. Tom
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