]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Allow thread exited message in gdb.threads/infcall-from-bp-cond-simpl...
authorTom de Vries <tdevries@suse.de>
Wed, 9 Apr 2025 10:10:10 +0000 (12:10 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 9 Apr 2025 10:10:10 +0000 (12:10 +0200)
With a gdb 15.2 based package and test-case
gdb.threads/infcall-from-bp-cond-simple.exp, I ran into:
...
Thread 2 "infcall-from-bp" hit Breakpoint 3, function_with_breakpoint () at \
  infcall-from-bp-cond-simple.c:51
51        return 1;     /* Nested breakpoint.  */
Error in testing condition for breakpoint 2:
The program being debugged stopped while in a function called from GDB.
Evaluation of the expression containing the function
(function_with_breakpoint) will be abandoned.
When the function is done executing, GDB will silently stop.
[Thread 0x7ffff73fe6c0 (LWP 951822) exited]
(gdb) FAIL: $exp: target_async=on: target_non_stop=on: \
  run_bp_cond_hits_breakpoint: continue
...

The test fails because it doesn't expect the "[Thread ... exited]" message.

I have tried to reproduce this test failure, both using 15.2 and current
trunk, but haven't managed.

Regardless, I think the message is harmless, so allow it to occur, both in
run_bp_cond_segfaults and run_bp_cond_hits_breakpoint.

Tested on x86_64-linux.

PR testsuite/32785
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32785

gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp

index bd439aec4b7d5a323d5025ba749013e247621bc5..0f068c6f777db97292c5381869bcfe75bc9daa9c 100644 (file)
@@ -141,6 +141,8 @@ proc_with_prefix run_kill_and_restart_test { target_async target_non_stop } {
     gdb_start_cmd
 }
 
+set re_thread_exited {\[Thread [^\r\n]+ exited\]}
+
 # Create a conditional breakpoint which includes a call to a function that
 # segfaults.  Run GDB and check what happens when the inferior segfaults
 # during the inferior call.
@@ -176,7 +178,8 @@ proc_with_prefix run_bp_cond_segfaults { target_async target_non_stop } {
             "To change this behavior use \"set unwind-on-signal on\"\\." \
             "Evaluation of the expression containing the function" \
             "\\(function_that_segfaults\\) will be abandoned\\." \
-            "When the function is done executing, GDB will silently stop\\."]
+            "When the function is done executing, GDB will silently stop\\.(" \
+            "$::re_thread_exited)?"]
 }
 
 # Create a conditional breakpoint which includes a call to a function that
@@ -210,7 +213,8 @@ proc_with_prefix run_bp_cond_hits_breakpoint { target_async target_non_stop } {
             "The program being debugged stopped while in a function called from GDB\\." \
             "Evaluation of the expression containing the function" \
             "\\(function_with_breakpoint\\) will be abandoned\\." \
-            "When the function is done executing, GDB will silently stop\\."]
+            "When the function is done executing, GDB will silently stop\\.(" \
+            "$::re_thread_exited)?"]
 }
 
 foreach_with_prefix target_async { "on" "off" } {