diff options
author | Tom Tromey <tom@tromey.com> | 2017-11-01 22:32:45 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-11-04 10:27:20 -0600 |
commit | 454dafbdf2d1293a9b18a6fe9e9c9e0911eb740c (patch) | |
tree | f33b5a538c368cfafb7784aa18e3cd6251aa74dd /gdb/infrun.c | |
parent | 331b71e5ee226cb5455969899274f0e43e83aa1e (diff) |
Introduce gdb_breakpoint_up
This introduces gdb_breakpoint_up, a unique_ptr typedef that owns a
breakpoint. It then changes set_momentary_breakpoint to return a
gdb_breakpoint_up and fixes up the fallout. This then allows the
removal of make_cleanup_delete_breakpoint.
Once breakpoints are fully C++-ified, this typedef can be removed in
favor of a plain std::unique_ptr.
gdb/ChangeLog
2017-11-04 Tom Tromey <tom@tromey.com>
* breakpoint.c (set_momentary_breakpoint): Return
breakpoint_up.
(until_break_command): Update.
(new_until_break_fsm): Change argument types to
breakpoint_up.
(set_momentary_breakpoint_at_pc): Return breakpoint_up.
(do_delete_breakpoint_cleanup, make_cleanup_delete_breakpoint):
Remove.
* infcmd.c (finish_forward): Update.
* breakpoint.h (set_momentary_breakpoint)
(set_momentary_breakpoint_at_pc): Return breakpoint_up.
(make_cleanup_delete_breakpoint): Remove.
(struct breakpoint_deleter): New.
(breakpoint_up): New typedef.
* infrun.c (insert_step_resume_breakpoint_at_sal_1): Update.
(insert_exception_resume_breakpoint): Update.
(insert_exception_resume_from_probe): Update.
(insert_longjmp_resume_breakpoint): Update.
* arm-linux-tdep.c (arm_linux_copy_svc): Update.
* elfread.c (elf_gnu_ifunc_resolver_stop): Update.
* infcall.c (call_function_by_hand_dummy): Update
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index ef5a505d89..d425664957 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -7402,7 +7402,7 @@ insert_step_resume_breakpoint_at_sal_1 (struct gdbarch *gdbarch, paddress (gdbarch, sr_sal.pc)); inferior_thread ()->control.step_resume_breakpoint - = set_momentary_breakpoint (gdbarch, sr_sal, sr_id, sr_type); + = set_momentary_breakpoint (gdbarch, sr_sal, sr_id, sr_type).release (); } void @@ -7491,7 +7491,7 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc) paddress (gdbarch, pc)); inferior_thread ()->control.exception_resume_breakpoint = - set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume); + set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume).release (); } /* Insert an exception resume breakpoint. TP is the thread throwing @@ -7526,7 +7526,8 @@ insert_exception_resume_breakpoint (struct thread_info *tp, (unsigned long) handler); bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame), - handler, bp_exception_resume); + handler, + bp_exception_resume).release (); /* set_momentary_breakpoint_at_pc invalidates FRAME. */ frame = NULL; @@ -7567,7 +7568,7 @@ insert_exception_resume_from_probe (struct thread_info *tp, handler)); bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame), - handler, bp_exception_resume); + handler, bp_exception_resume).release (); bp->thread = tp->global_num; inferior_thread ()->control.exception_resume_breakpoint = bp; } |