aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorThiago Jung Bauermann <thiago.bauermann@linaro.org>2024-04-29 22:53:25 -0300
committerThiago Jung Bauermann <thiago.bauermann@linaro.org>2024-05-23 00:55:45 -0300
commit100318bcfda243f04cda3c29e8873c5710a1688a (patch)
tree65eb725004ba3cee9a190c58d780b2e45e1908c5 /gdb/testsuite/lib
parentfc12b44ec0e07e036155092ddfffe0c237415611 (diff)
downloadgdb-100318bcfda243f04cda3c29e8873c5710a1688a.zip
gdb-100318bcfda243f04cda3c29e8873c5710a1688a.tar.gz
gdb-100318bcfda243f04cda3c29e8873c5710a1688a.tar.bz2
gdb/testsuite: Restore libc_has_debug_info's less strict behaviour
The code that was factored out from gdb.base/relativedebug.exp assumed that libc has debug info and only determined that it doesn't if it saw a specific message from GDB to that effect. In the process of factoring it into a require predicate, I made it stricter by trying to make a specific determination of whether or not debug info is available. Pedro noticed that "It'll disable the testcase on systems that link with their libc statically (even if has debug info), or systems that name their libc something else." Which is something I hadn't considered. This patch returns libc_has_debug_info to the original behaviour. Also, remove a verbose message that is redundant with the $message variable. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31700 Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/gdb.exp21
1 files changed, 10 insertions, 11 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 55f6ab1..cdc3721 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3699,8 +3699,9 @@ proc support_displaced_stepping {} {
return 0
}
-# Return 1 if GDB can find the libc debug info, or 0 and a reason string if it
-# can't. This procedure is meant to be called by the require procedure.
+# Return 0 and a reason string if GDB can determine that libc doesn't have
+# debug info, and 1 otherwise. This procedure is meant to be called by the
+# require procedure.
gdb_caching_proc libc_has_debug_info {} {
global srcdir subdir gdb_prompt inferior_exited_re
@@ -3726,22 +3727,20 @@ gdb_caching_proc libc_has_debug_info {} {
gdb_reinitialize_dir $srcdir/$subdir
gdb_load "$obj"
runto_main
- set test "info sharedlibrary libc.so"
+ set libc_has_debug_info 1
+ set message "unable to get information on libc.so"
+ set test "info sharedlibrary"
gdb_test_multiple $test $test {
-re ".*\(\\*\)\[^\r\n\]*/libc\.so.*$gdb_prompt $" {
# Matched the "(*)" in the "Syms Read" columns which means:
# "(*): Shared library is missing debugging information."
- verbose -log "$me: libc doesn't have debug info"
set libc_has_debug_info 0
set message "libc doesn't have debug info"
}
- -re ".*Yes\[ \t\]+\[^\r\n\]*/libc\.so.*$gdb_prompt $" {
- verbose -log "$me: libc has debug info"
- set libc_has_debug_info 1
- }
- default {
- set libc_has_debug_info 0
- set message "libc not found in the inferior"
+ -re ".*$gdb_prompt $" {
+ # The default pattern for the GDB prompt in gdb_test_multiple
+ # causes a FAIL if it matches, but in our case we should just
+ # assume that there is libc debug info.
}
}
gdb_exit