[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" patter for gdb_spawn_id, and add the wait status logging there. Build and tested on x86_64-linux. 2018-10-24 Tom de Vries * lib/gdb.exp (gdb_test_multiple): Log wait status on process no longer exists error. --- gdb/testsuite/lib/gdb.exp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 2d197d9b5c..f68664b0ef 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -980,6 +980,16 @@ proc gdb_test_multiple { command message user_code } { set result -1 } + -i $gdb_spawn_id + eof { + perror "Gdb process no longer exists" + verbose -log "Gdb process exited with wait status [wait -i $gdb_spawn_id]" + if { $message != "" } { + fail "$message" + } + return -1 + } + # Patterns below apply to any spawn id specified. -i $any_spawn_id eof {