Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [committed][gdb/testsuite] Fix gdb.base/gold-gdb-index.exp
@ 2021-07-14  9:37 Tom de Vries
  0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2021-07-14  9:37 UTC (permalink / raw)
  To: gdb-patches

Hi,

When running test-case gdb.base/gold-gdb-index.exp on openSUSE Tumbleweed,
I run into:
...
FAIL: gdb.base/gold-gdb-index.exp: maint info symtabs
...

This is due to a dummy .gdb_index:
...
Contents of the .gdb_index section:

Version 7

CU table:

TU table:

Address table:

Symbol table:
...

The dummy .gdb_index is ignored when loading the symbols, and instead partial
symbols are used.  Consequently, we get the same result as if we'd removed
-Wl,--gdb-index from the compilation.

Presumably, gold fails to generate a proper .gdb_index because it lacks
DWARF5 support.

Anyway, without a proper .gdb_index we can't test the gdb behaviour we're
trying to excercise.  Fix this by detecting whether we actually used a
.gdb_index for symbol loading.

Tested on x86_64-linux.

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Fix gdb.base/gold-gdb-index.exp

gdb/testsuite/ChangeLog:

2021-07-14  Tom de Vries  <tdevries@suse.de>

	* lib/gdb.exp (have_index): New proc.
	* gdb.base/gold-gdb-index.exp: Use have_index.

---
 gdb/testsuite/gdb.base/gold-gdb-index.exp |  2 +-
 gdb/testsuite/lib/gdb.exp                 | 28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/gold-gdb-index.exp b/gdb/testsuite/gdb.base/gold-gdb-index.exp
index 2a6da322dfd..1af756ac0ec 100644
--- a/gdb/testsuite/gdb.base/gold-gdb-index.exp
+++ b/gdb/testsuite/gdb.base/gold-gdb-index.exp
@@ -28,7 +28,7 @@ if {[prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" \
     return -1
 }
 
-if { [readnow] } {
+if { [have_index $binfile] != "gdb_index" } {
     return -1
 }
 
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 6b6a70a89b0..04ca56168a1 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -7670,6 +7670,34 @@ proc readnow { args } {
     return $readnow_p
 }
 
+# Return index name if symbols were read in using an index.
+# Otherwise, return "".
+
+proc have_index { objfile } {
+
+    set res ""
+    set cmd "maint print objfiles $objfile"
+    gdb_test_multiple $cmd "" -lbl {
+	-re "\r\n.gdb_index: faked for \"readnow\"" {
+	    set res ""
+	    exp_continue
+	}
+	-re "\r\n.gdb_index:" {
+	    set res "gdb_index"
+	    exp_continue
+	}
+	-re "\r\n.debug_names:" {
+	    set res "debug_names"
+	    exp_continue
+	}
+	-re -wrap "" {
+	    # We don't care about any other input.
+	}
+    }
+
+    return $res
+}
+
 # Return 1 if partial symbols are available.  Otherwise, return 0.
 
 proc psymtabs_p {  } {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-14  9:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-14  9:37 [committed][gdb/testsuite] Fix gdb.base/gold-gdb-index.exp Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox