]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Fix gdb.base/infcall-failure.exp on freebsd
authorTom de Vries <tdevries@suse.de>
Wed, 25 Jun 2025 07:39:30 +0000 (09:39 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 25 Jun 2025 07:39:30 +0000 (09:39 +0200)
On x86_64-freebsd with test-case gdb.base/infcall-failure.exp I get:
...
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
Address not mapped to object.
0x0000000000400522 in func_segfault () at infcall-failure.c:24
24   return *p; /* Segfault here.  */
Error in testing condition for breakpoint 2:
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwind-on-signal on".
Evaluation of the expression containing the function
(func_segfault) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) FAIL: $exp: target_async=on: target_non_stop=on: \
  run_cond_hits_segfault_test: continue
...

The problem is that the regexp in the test-case doesn't expect the
"Address not mapped to object." bit.

Fix this by updating the regexp.

Approved-by: Kevin Buettner <kevinb@redhat.com>
Tested on x86_64-freebsd and x86_64-linux.

gdb/testsuite/gdb.base/infcall-failure.exp

index 66bccd186aeab5d65474d3d0ced349bacfb1c988..e7aeac1ff1c4b7680dc766e8a1490857429c7451 100644 (file)
@@ -131,7 +131,13 @@ proc_with_prefix run_cond_hits_segfault_test { async_p non_stop_p } {
        [multi_line \
             "Continuing\\." \
             "" \
-            "Program received signal SIGSEGV, Segmentation fault\\." \
+            [string cat \
+                 [string_to_regexp \
+                      "Program received signal SIGSEGV, Segmentation fault."] \
+                 "("] \
+            [string cat \
+                 [string_to_regexp "Address not mapped to object."] \
+                 ")?"] \
             "${::hex} in func_segfault \\(\\) at \[^\r\n\]+:${::segv_line}" \
             "${::decimal}\\s+\[^\r\n\]+Segfault here\[^\r\n\]+" \
             "Error in testing condition for breakpoint ${bp_1_num}:" \
@@ -161,7 +167,13 @@ proc_with_prefix run_call_hits_segfault_test { async_p non_stop_p } {
     gdb_test "call func_segfault ()" \
        [multi_line \
             "" \
-            "Program received signal SIGSEGV, Segmentation fault\\." \
+            [string cat \
+                 [string_to_regexp \
+                      "Program received signal SIGSEGV, Segmentation fault."] \
+                 "("] \
+            [string cat \
+                 [string_to_regexp "Address not mapped to object."] \
+                 ")?"] \
             "${::hex} in func_segfault \\(\\) at \[^\r\n\]+:${::segv_line}" \
             "${::decimal}\\s+\[^\r\n\]+Segfault here\[^\r\n\]+" \
             "The program being debugged was signaled while in a function called from GDB\\." \