diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp | 58 |
2 files changed, 62 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a710243..975a15d 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-05-26 Pedro Alves <pedro@codesourcery.com> + + * gdb.reverse/next-reverse-bkpt-over-sr.exp: New test. + 2011-05-24 Keith Seitz <keiths@redhat.com> PR breakpoint/12803 diff --git a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp new file mode 100644 index 0000000..9a95dca --- /dev/null +++ b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp @@ -0,0 +1,58 @@ +# Copyright 2008, 2009, 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 +# 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 <http://www.gnu.org/licenses/>. */ + +# This file is part of the GDB testsuite. It tests reverse stepping. +# Lots of code borrowed from "step-test.exp". + +# +# reverse-next over a function call sets a step-resume breakpoint at +# callee's entry point, runs to it, and then does an extra single-step +# to get at the callee's caller. Test that a user breakpoint set at +# the same location as the step-resume breakpoint isn't ignored. +# + +if ![target_info exists gdb,can_reverse] { + return +} + +set testfile "next-reverse-bkpt-over-sr" +set srcfile step-reverse.c + +if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { + return -1 +} + +if ![runto_main] then { + fail "Can't run to main" + return 0 +} + +if [target_info exists gdb,use_precord] { + # Activate process record/replay + gdb_test_no_output "record" "Turn on process record" +} + +set lineno [gdb_get_line_number "STEP INTO THIS CALL"] +gdb_test "advance $lineno" ".*STEP INTO THIS CALL.*" "get past callee call" + +gdb_test "b \*callee" "" "set breakpoint at callee's entry" + +gdb_test "reverse-next" \ + "Breakpoint.*, callee.*ENTER CALLEE.*" \ + "reverse-next over call trips user breakpoint at function entry" + +gdb_test "up" \ + ".*NEXT OVER THIS CALL.*" \ + "stopped at the right callee call" |