-# Copyright 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004-2019 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
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
# Author: Paul N. Hilfinger (Hilfinger@gnat.com)
# Test that GDB cleans up properly after errors that result when a
# breakpoint is reset.
-if $tracelevel then {
- strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-
-# IDT/SIM apparently doesn't have enough file descriptors to allow the
-# problem checked by this test to occur.
-if [istarget "mips-idt-*"] {
- return 0;
-}
-
-set testfile "chng-syms"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
+standard_testfile .c
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DVARIABLE=var1}] != "" } {
- untested chng-syms.exp
+ untested "failed to compile"
return -1
}
verbose "Timeout is now 10 seconds" 2
proc expect_to_stop_here { ident } {
- global gdb_prompt
- global decimal
-
# the "at foo.c:36" output we get with -g.
# the "in func" output we get without -g.
- gdb_expect {
- -re "Breakpoint \[0-9\]*, stop_here .*$gdb_prompt $" {
- return 1
- }
- -re "$gdb_prompt $" {
- fail "running to stop_here $ident"
- return 0
- }
- timeout {
- fail "running to stop_here $ident (timeout)"
- return 0
- }
- }
- return 1
+
+ gdb_test "" "Breakpoint \[0-9\]*, stop_here .*" "running to stop_here $ident"
}
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${binfile}
gdb_test "break stop_here if (var1 == 42)" \
"Breakpoint.*at.* file .*$srcfile, line.*" \
} else {
gdb_run_cmd
- gdb_expect {
- -re "Error in re-setting .*No symbol .var1..*Program exited normally.*$gdb_prompt $" {
- pass "running with invalidated bpt condition after executable changes"
- }
- -re "Error in re-setting .*No symbol .var1..*Breakpoint .*,( 0x.* in)? (\[^ \]*)exit .*$gdb_prompt $" {
- pass "running with invalidated bpt condition after executable changes"
- }
- -re "$gdb_prompt $" {
- fail "running with invalidated bpt condition after executable changes"
+
+ set test "running with invalidated bpt condition after executable changes"
+ gdb_test_multiple "" $test {
+ -re ".*$inferior_exited_re normally.*$gdb_prompt $" {
+ pass $test
}
- timeout {
- fail "(timeout) running with invalidated bpt condition after executable changes"
+ -re ".*Breakpoint .*,( 0x.* in)? (\[^ \]*)exit .*$gdb_prompt $" {
+ pass $test
}
}