diff options
author | Pedro Alves <palves@redhat.com> | 2011-05-26 14:59:18 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-05-26 14:59:18 +0000 |
commit | 2c03e5bed3ac8158eaae4621f4b4550e4ab6d4ef (patch) | |
tree | 9ce0d9eff28c57a3e2883702ebafef3d51a48688 /gdb/testsuite | |
parent | 51be5b68a5d97470c5f6e7ef1d43603a100c18f6 (diff) | |
download | gdb-2c03e5bed3ac8158eaae4621f4b4550e4ab6d4ef.zip gdb-2c03e5bed3ac8158eaae4621f4b4550e4ab6d4ef.tar.gz gdb-2c03e5bed3ac8158eaae4621f4b4550e4ab6d4ef.tar.bz2 |
2011-05-26 Pedro Alves <pedro@codesourcery.com>
gdb/
* breakpoint.h (enum bptype) <bp_hp_step_resume>: New.
(enum bpstat_what_main_action): Move BPSTAT_WHAT_STEP_RESUME
before BPSTAT_WHAT_STOP_SILENT. Add BPSTAT_WHAT_HP_STEP_RESUME
at the end.
* breakpoint.c (update_breakpoints_after_exec): Also delete hp
step-resume breakpoints.
(print_it_typical): Handle bp_hp_step_resume.
(bpstat_what): Ditto.
(bptype_string): Ditto.
(print_one_breakpoint_location): Ditto.
(allocate_bp_location): Ditto.
(mention): Ditto.
(breakpoint_re_set_one): Ditto.
* infrun.c (handle_inferior_event): Adjust. Split
BPSTAT_WHAT_STEP_RESUME handling in BPSTAT_WHAT_STEP_RESUME and
BPSTAT_WHAT_HP_STEP_RESUME.
(insert_step_resume_breakpoint_at_sal): Rename to ...
(insert_step_resume_breakpoint_at_sal_1): ... this. Add bptype
parameter. Handle it.
(insert_step_resume_breakpoint_at_sal): Reimplement on top of
insert_step_resume_breakpoint_at_sal_1.
(insert_step_resume_breakpoint_at_frame): Rename to ...
(insert_hp_step_resume_breakpoint_at_frame): ... this. Adjust to
set a high-priority step-resume breakpoint.
(insert_step_resume_breakpoint_at_frame): Adjust comment.
(insert_step_resume_breakpoint_at_caller): Ditto.
gdb/testsuite/
* gdb.reverse/next-reverse-bkpt-over-sr.exp: New test.
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" |