From: Tom de Vries Date: Wed, 9 Apr 2025 10:10:10 +0000 (+0200) Subject: [gdb/testsuite] Allow thread exited message in gdb.threads/infcall-from-bp-cond-simpl... X-Git-Tag: binutils-2_45~931 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=92d4a12d9e924fc286c20e4199c270f270672d87;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Allow thread exited message in gdb.threads/infcall-from-bp-cond-simple.exp 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 --- diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp index bd439aec4b7..0f068c6f777 100644 --- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp +++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp @@ -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" } {