# This testcase is part of GDB, the GNU debugger. # Copyright 2009-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Regression test for issue originally described here: # # https://sourceware.org/legacy-ml/gdb-patches/2009-06/msg00802.html # # The relevant code has since been removed from GDB, but it doesn't # hurt to keep the testcase. standard_testfile # This only works with on Linux targets. if {![istarget *-*-linux*]} { return } if { [prepare_for_testing "failed to prepare" current-lwp-dead] } { return -1 } if {[runto_main] <= 0} { return -1 } # Run to "fn" so that thread 2 is made current. gdb_breakpoint "fn" gdb_continue_to_breakpoint "fn" ".*do_clone.*" # Run to thread 3, at a point where thread 2 is gone. set line [gdb_get_line_number "at-fn_return"] gdb_breakpoint $line gdb_continue_to_breakpoint "fn_return" ".*at-fn_return.*" # Confirm thread 2 is really gone. gdb_test "info threads 2" "No threads match '2'\\." gdb_continue_to_end "" continue 1