Message ID | 20240430015325.89780-1-thiago.bauermann@linaro.org |
---|---|
State | New |
Headers | show |
Series | gdb/testsuite: Restore libc_has_debug_info's less strict behaviour | expand |
>>>>> "Thiago" == Thiago Jung Bauermann <thiago.bauermann@linaro.org> writes:
Thiago> The code that was factored out from gdb.base/relativedebug.exp assumed that
Thiago> libc has debug info and only determined that it doesn't if it saw a specific
Thiago> message from GDB to that effect. In the process of factoring it into a
Thiago> require predicate, I made it stricter by trying to make a specific
Thiago> determination of whether or not debug info is available.
Thiago> Pedro noticed that "It'll disable the testcase on systems that link with
Thiago> their libc statically (even if has debug info), or systems that name their
Thiago> libc something else." Which is something I hadn't considered.
Thiago> This patch returns libc_has_debug_info to the original behaviour.
Thiago> Also, remove a verbose message that is redundant with the $message
Thiago> variable.
Thank you. I think this is ok, but can you also add the Bug trailer?
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31700
Approved-By: Tom Tromey <tom@tromey.com>
Tom
Hello Tom, Tom Tromey <tom@tromey.com> writes: >>>>>> "Thiago" == Thiago Jung Bauermann <thiago.bauermann@linaro.org> writes: > > Thiago> The code that was factored out from gdb.base/relativedebug.exp assumed that > Thiago> libc has debug info and only determined that it doesn't if it saw a specific > Thiago> message from GDB to that effect. In the process of factoring it into a > Thiago> require predicate, I made it stricter by trying to make a specific > Thiago> determination of whether or not debug info is available. > > Thiago> Pedro noticed that "It'll disable the testcase on systems that link with > Thiago> their libc statically (even if has debug info), or systems that name their > Thiago> libc something else." Which is something I hadn't considered. > > Thiago> This patch returns libc_has_debug_info to the original behaviour. > > Thiago> Also, remove a verbose message that is redundant with the $message > Thiago> variable. > > Thank you. I think this is ok, but can you also add the Bug trailer? > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31700 > Approved-By: Tom Tromey <tom@tromey.com> Thank you for the review! I added the trailers and pushed as commit 100318bcfda2.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index d092258a9e50..c55ade065844 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