From: Tom de Vries Date: Thu, 14 Aug 2025 20:31:06 +0000 (+0200) Subject: [gdb/testsuite] Fix gdb.base/dlmopen.exp on native-gdbserver X-Git-Tag: gdb-17-branchpoint~310 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7d6d4f69fe59b1102cbbd64ffaec33f8d18b642b;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Fix gdb.base/dlmopen.exp on native-gdbserver With test-case gdb.base/dlmopen.exp and target board native-gdbserver, I get: ... (gdb) info breakpoints 3^M Num Type Disp Enb Address What^M 3 breakpoint keep y 0x00007ffff7fc8000 ^M stop only if (0) (target evals)^M (gdb) FAIL: $exp: test_solib_unmap_events: check b/p status ... The problem is that the regexp doesn't allow for the "(target evals)" part: ... -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop o nly if \\(0\\)" { ... Fix this by updating the regexp. While we're at it: - rewrite the regexp using multiline, string_to_regexp, join and string cat to make it more readable, and - remove the redundant failure clause from the same gdb_test_multiple. Tested on x86_64-linux using make-check-all.sh. Approved-By: Tom Tromey --- diff --git a/gdb/testsuite/gdb.base/dlmopen.exp b/gdb/testsuite/gdb.base/dlmopen.exp index da17002dae7..e7bf6f3f7bc 100644 --- a/gdb/testsuite/gdb.base/dlmopen.exp +++ b/gdb/testsuite/gdb.base/dlmopen.exp @@ -358,15 +358,19 @@ proc_with_prefix test_solib_unmap_events { } { # dynamic linker as pending when some instances of the library were # unloaded, despite there really only being one copy of the dynamic # linker actually loaded into the inferior's address space. - gdb_test_multiple "info breakpoints $bpnum" "check b/p status" { - -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+\\s+\\*$::hex\\s*\r\n\\s+stop only if \\(0\\)" { - fail $gdb_test_name - } - - -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop only if \\(0\\)" { - pass $gdb_test_name - } - } + set hs {[^\r\n]} + set re_pass \ + [multi_line \ + "" \ + [join \ + [list \ + "$bpnum" "breakpoint" "keep" "y" "$::hex$hs+"] \ + {\s+}] \ + [string cat \ + {\s+} \ + [string_to_regexp "stop only if (0)"] \ + ([string_to_regexp " (target evals)"])?]] + gdb_test "info breakpoints $bpnum" $re_pass "check b/p status" # With all the dlclose calls now complete, we should be back to a # single copy of the dynamic linker.