[gdb/testsuite] Fix full buffer in gdb.rust/dwindex.exp

On ubuntu 18.04.5, I run into:
...
(gdb) mt print objfiles dwindex^M
^M
Object file build/gdb/testsuite/outputs/gdb.rust/dwindex/dwindex:  \
  Objfile at 0x55dab0b87a50, bfd at 0x55dab0b0cfa0, 1095 minsyms^M
^M
Psymtabs:^M
vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs at 0x55dab0db0720^M
  ...
library/std/src/sys/unix/stdio.rs at 0x55dab0d96320^M
ERROR: internal buffer is full.
UNRESOLVED: gdb.rust/dwindex.exp: check if index present
...

Fix this by using -lbl in proc ensure_gdb_index.

Tested on x86_64-linux.
This commit is contained in:
Tom de Vries 2021-09-30 12:02:14 +02:00
parent 6420dd27cb
commit 6010fb0c49

View File

@ -7917,22 +7917,36 @@ proc add_gdb_index { program {style ""} } {
# string (the default) means .gdb_index; "-dwarf-5" means .debug_names.
proc ensure_gdb_index { binfile {style ""} } {
global decimal
set testfile [file tail $binfile]
set test "check if index present"
gdb_test_multiple "mt print objfiles ${testfile}" $test {
-re -wrap "gdb_index.*" {
return 0
set has_index 0
gdb_test_multiple "mt print objfiles ${testfile}" $test -lbl {
-re "\r\n\\.gdb_index: version ${decimal}(?=\r\n)" {
set has_index 1
gdb_test_lines "" $gdb_test_name ".*"
}
-re -wrap "debug_names.*" {
return 0
-re "\r\n\\.debug_names: exists(?=\r\n)" {
set has_index 1
gdb_test_lines "" $gdb_test_name ".*"
}
-re -wrap "Psymtabs.*" {
if { [add_gdb_index $binfile $style] != "1" } {
return -1
}
return 1
-re "\r\nPsymtabs:(?=\r\n)" {
gdb_test_lines "" $gdb_test_name ".*"
}
-re -wrap "" {
fail $gdb_test_name
}
}
if { $has_index } {
return 0
}
if { [add_gdb_index $binfile $style] == "1" } {
return 1
}
return -1
}