[gdb/testsuite] Handle eof in gdb_internal_error_resync
authorTom de Vries <tdevries@suse.de>
Mon, 6 Sep 2021 15:47:08 +0000 (17:47 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 6 Sep 2021 15:47:08 +0000 (17:47 +0200)
Before commit 5a20fadc841 the test-case
gdb.dwarf2/locexpr-data-member-location.exp fails like this:
...
FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
  (GDB internal error)
ERROR: : spawn id exp9 not open
    while executing
"expect {
-i exp9 -timeout 10
            -re "Quit this debugging session\\? \\(y or n\\) $" {
                send_gdb "n\n" answer
                incr count
            }
            -re "Create ..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $body" NONE : spawn id exp9 not open
ERROR: Could not resync from internal error (timeout)
...

Fix the:
...
ERROR: : spawn id exp9 not open
...
by handling eof in gdb_internal_error_resync, such that we have instead:
...
FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
  (GDB internal error)
ERROR: Could not resync from internal error (eof)
...

Tested on x86_64-linux.

gdb/testsuite/lib/gdb.exp

index 00336bd588efd04fea8a59753e634977289d217f..cdda51529fb9ac785cc32baa2c8563bf5ebec39e 100644 (file)
@@ -770,6 +770,10 @@ proc gdb_internal_error_resync {} {
                perror "Could not resync from internal error (timeout)"
                return 0
            }
+           eof {
+               perror "Could not resync from internal error (eof)"
+               return 0
+           }
        }
     }
     perror "Could not resync from internal error (resync count exceeded)"