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/breakpoint.h | |
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/breakpoint.h')
-rw-r--r-- | gdb/breakpoint.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 0cbd9dd..2050c6d 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -68,10 +68,13 @@ enum bptype bp_exception_resume, /* Used by wait_for_inferior for stepping over subroutine calls, - for stepping over signal handlers, and for skipping - prologues. */ + and for skipping prologues. */ bp_step_resume, + /* Used by wait_for_inferior for stepping over signal + handlers. */ + bp_hp_step_resume, + /* Used to detect when a watchpoint expression has gone out of scope. These breakpoints are usually not visible to the user. @@ -721,6 +724,9 @@ enum bpstat_what_main_action BPSTAT_WHAT_KEEP_CHECKING. */ BPSTAT_WHAT_CLEAR_LONGJMP_RESUME, + /* Clear step resume breakpoint, and keep checking. */ + BPSTAT_WHAT_STEP_RESUME, + /* Rather than distinguish between noisy and silent stops here, it might be cleaner to have bpstat_print make that decision (also taking into account stop_print_frame and source_only). But the @@ -733,8 +739,14 @@ enum bpstat_what_main_action /* Stop and print. */ BPSTAT_WHAT_STOP_NOISY, - /* Clear step resume breakpoint, and keep checking. */ - BPSTAT_WHAT_STEP_RESUME, + /* Clear step resume breakpoint, and keep checking. High-priority + step-resume breakpoints are used when even if there's a user + breakpoint at the current PC when we set the step-resume + breakpoint, we don't want to re-handle any breakpoint other + than the step-resume when it's hit; instead we want to move + past the breakpoint. This is used in the case of skipping + signal handlers. */ + BPSTAT_WHAT_HP_STEP_RESUME, }; /* An enum indicating the kind of "stack dummy" stop. This is a bit |