diff options
author | Tom de Vries <tdevries@suse.de> | 2018-10-24 12:54:33 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2018-10-24 16:22:58 +0200 |
commit | fe1a5cad302b5535030cdf62895e79512713d738 (patch) | |
tree | fb4dbb8491108457c12f9509585621da7899cd95 /gdb/testsuite | |
parent | 8c246a60c08d82066b16973bcd622e671300eb02 (diff) | |
download | gdb-fe1a5cad302b5535030cdf62895e79512713d738.zip gdb-fe1a5cad302b5535030cdf62895e79512713d738.tar.gz gdb-fe1a5cad302b5535030cdf62895e79512713d738.tar.bz2 |
[gdb/testsuite] Log wait status on process no longer exists error
Proc gdb_test_multiple can run into a process no longer exists error, but when
that happens it shows no details about the process:
...
ERROR: Process no longer exists
...
Fix this by showing the wait status of the process in the log:
...
ERROR: GDB process no longer exists
GDB process exited with wait status 8106 exp8 0 0 CHILDKILLED SIGSEGV \
{segmentation violation}
...
In order to run the wait commmand we need an explicit pid, so we can't use
any_spawn_id, and duplicate the "-i any_spawn_id eof" pattern for gdb_spawn_id,
and add the wait status logging there.
Build and tested on x86_64-linux.
2018-10-24 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (gdb_test_multiple): Log wait status on process no
longer exists error.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index bfcea61..c91c0f2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2018-10-24 Tom de Vries <tdevries@suse.de> + * lib/gdb.exp (gdb_test_multiple): Log wait status on process no + longer exists error. + +2018-10-24 Tom de Vries <tdevries@suse.de> + * gdb.base/catch-follow-exec.exp: Rewrite using gdb_test. 2018-10-24 Tom de Vries <tdevries@suse.de> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 2d197d9..b4cf80e 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -980,6 +980,17 @@ proc gdb_test_multiple { command message user_code } { set result -1 } + -i $gdb_spawn_id + eof { + perror "GDB process no longer exists" + set wait_status [wait -i $gdb_spawn_id] + verbose -log "GDB process exited with wait status $wait_status" + if { $message != "" } { + fail "$message" + } + return -1 + } + # Patterns below apply to any spawn id specified. -i $any_spawn_id eof { |