1 # Copyright
2009-2022 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
16 # Test that when a thread other than the main thread execs
, we follow
17 # through to the new incarnation of the main thread.
20 set executable $
{testfile
}
22 if {[gdb_compile_pthreads
"${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
26 proc do_test
{ lock_sched nonstop
} {
29 save_vars
{ GDBFLAGS
} {
30 append GDBFLAGS
" -ex \"set non-stop $nonstop\""
31 clean_restart $
{executable
}
38 gdb_breakpoint
[gdb_get_line_number
"break-here"]
39 gdb_continue_to_breakpoint
"break-here" ".* break-here .*"
41 # Also test with sched
-lock to make sure we can follow the
42 # non
-leader thread execing even though the main thread wasn
't
43 # resumed before the exec.
45 gdb_test_no_output "set scheduler-locking on"
48 if { $nonstop == "on" } {
49 gdb_test "thread 2" "Switching.*"
53 ".*is executing new program.*Breakpoint 1, main.* at .*" \
57 foreach_with_prefix nonstop {"on" "off"} {
58 foreach_with_prefix schedlock {"on" "off"} {
59 if {$schedlock == "on" && $nonstop == "on"} {
60 # Schedule locking has no effect in nonstop mode.
64 do_test $schedlock $nonstop