# Copyright (C) 2012 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 . set testfile stale-infcall set srcfile ${testfile}.c if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { return -1 } if ![runto_main] { return -1 } gdb_breakpoint [gdb_get_line_number "break-run1"] gdb_breakpoint [gdb_get_line_number "break-run2"] gdb_breakpoint [gdb_get_line_number "break-exit"] gdb_breakpoint [gdb_get_line_number "break-fail"] gdb_continue_to_breakpoint "break-run1" ".* break-run1 .*" gdb_test "print infcall ()" " break-run2 .*The program being debugged stopped while in a function called from GDB\\..*When the function is done executing, GDB will silently stop\\." set test "stack corrupted" gdb_test_multiple "continue" $test { -re " break-exit .*\r\n$gdb_prompt $" { pass $test } -re " break-fail .*\r\n$gdb_prompt $" { fail $test } } gdb_test "bt" "#0 \[^\r\n\]* main \[^\r\n\]*" # Verify there are no remains of the dummy frame. gdb_test_no_output "maintenance print dummy-frames" set test "maintenance info breakpoints" gdb_test_multiple $test $test { -re " call dummy .*\r\n$gdb_prompt $" { fail $test } -re "\r\n$gdb_prompt $" { pass $test } }