-# Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2007, 2008, 2010, 2011 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
}
proc get_dummy_frame_number { } {
- global gdb_prompt
-
- send_gdb "bt\n"
- gdb_expect {
- -re "#(\[0-9\]*) *<function called from gdb>.*$gdb_prompt $"
- {
- return $expect_out(1,string)
- }
- -re "$gdb_prompt $"
- {
- return ""
- }
- timeout
- {
- return ""
- }
- }
- return ""
+ global gdb_prompt
+
+ gdb_test_multiple "bt" "" {
+ -re "#(\[0-9\]*) *<function called from gdb>.*$gdb_prompt $" {
+ return $expect_out(1,string)
+ }
+ -re "$gdb_prompt $" {
+ return ""
+ }
+ timeout {
+ return ""
+ }
+ }
+ return ""
}
gdb_exit
# Before we start making hand function calls, turn on scheduler locking.
-gdb_test "set scheduler-locking on" "" "enable scheduler locking"
+gdb_test_no_output "set scheduler-locking on" "enable scheduler locking"
gdb_test "show scheduler-locking" ".* locking scheduler .* is \"on\"." "show scheduler locking on"
# Now hand-call a function in each thread, having the function
# Thread numbering in gdb is origin-1, so begin numbering at 1.
for { set i 1 } { $i <= $total_nr_threads } { incr i } {
set thread_nr $i
- gdb_test "thread $thread_nr" "" "prepare to make hand call, thread $thread_nr"
- gdb_test "call hand_call()" "Breakpoint 3, .*" "hand call, thread $thread_nr"
+ gdb_test "thread $thread_nr" ".*" \
+ "prepare to make hand call, thread $thread_nr"
+ gdb_test "call hand_call()" "Breakpoint 3, .*" \
+ "hand call, thread $thread_nr"
}
# Now have each hand-called function return.
# Turn confirmation off for the "return" command.
-gdb_test "set confirm off" ""
+gdb_test_no_output "set confirm off"
clear_xfail "*-*-*"
for { set i 1 } { $i <= $total_nr_threads } { incr i } {
set thread_nr $i
- gdb_test "thread $thread_nr" "" "prepare to discard hand call, thread $thread_nr"
+ gdb_test "thread $thread_nr" ".*" \
+ "prepare to discard hand call, thread $thread_nr"
set frame_number [get_dummy_frame_number]
if { "$frame_number" == "" } {
fail "dummy stack frame number, thread $thread_nr"
pass "dummy stack frame number, thread $thread_nr"
}
# Pop the dummy frame.
- gdb_test "frame $frame_number" "" "setting frame, thread $thread_nr"
- gdb_test "return" "" "discard hand call, thread $thread_nr"
+ gdb_test "frame $frame_number" ".*" "setting frame, thread $thread_nr"
+ gdb_test "return" ".*" "discard hand call, thread $thread_nr"
# In case getting the dummy frame number failed, re-enable for next iter.
clear_xfail "*-*-*"
}
}
}
-# Before we resume the full program, turn of scheduler locking.
-gdb_test "set scheduler-locking off" "" "disable scheduler locking"
+# Before we resume the full program, turn off scheduler locking.
+gdb_test_no_output "set scheduler-locking off" "disable scheduler locking"
gdb_test "show scheduler-locking" ".* locking scheduler .* is \"off\"." "show scheduler locking off"
# Continue one last time, the program should exit normally.
# all_threads_running breakpoint, which wasn't the last thread to run,
# and gdb doesn't know how to singlestep over reported breakpoints that
# weren't in the last thread to run.
-#gdb_test "thread 1" "" "set thread to 1, prepare to resume"
+#gdb_test "thread 1" ".*" "set thread to 1, prepare to resume"
#
#gdb_continue_to_end "hand-call-in-threads"