[gdb/testsuite] Handle internal-error in gdb_unload
authorTom de Vries <tdevries@suse.de>
Tue, 7 Sep 2021 08:31:42 +0000 (10:31 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 7 Sep 2021 08:31:42 +0000 (10:31 +0200)
When reverting commit 5a20fadc841 and using gdb_unload instead of runto "bar"
to trigger the internal-error in test-case
gdb.dwarf2/locexpr-data-member-location.exp, we run into:
...
ERROR: couldn't unload file in $gdb (timeout).
...
and the test-case takes about 1 minute.

Fix this by handling internal-error in gdb_unload, such that we have:
...
ERROR: Couldn't unload file in $gdb (GDB internal error).
ERROR: Could not resync from internal error (eof)
...
within 2 seconds.

Tested on x86_64-linux.

gdb/testsuite/lib/gdb.exp

index d99e8360808938c47c49e61e366bb17e9aa6ecc8..ff19760bac4dc6116f51c8d8092b41fa80e8aeb3 100644 (file)
@@ -235,6 +235,11 @@ proc gdb_unload {} {
            exp_continue
        }
        -re "$gdb_prompt $" {}
+       -re "A problem internal to GDB has been detected" {
+           perror "Couldn't unload file in $GDB (GDB internal error)."
+           gdb_internal_error_resync
+           return -1
+       }
        timeout {
            perror "couldn't unload file in $GDB (timeout)."
            return -1