aboutsummaryrefslogtreecommitdiff
path: root/gdb/elfread.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-11-01 22:32:45 -0600
committerTom Tromey <tom@tromey.com>2017-11-04 10:27:20 -0600
commit454dafbdf2d1293a9b18a6fe9e9c9e0911eb740c (patch)
treef33b5a538c368cfafb7784aa18e3cd6251aa74dd /gdb/elfread.c
parent331b71e5ee226cb5455969899274f0e43e83aa1e (diff)
downloadgdb-454dafbdf2d1293a9b18a6fe9e9c9e0911eb740c.zip
gdb-454dafbdf2d1293a9b18a6fe9e9c9e0911eb740c.tar.gz
gdb-454dafbdf2d1293a9b18a6fe9e9c9e0911eb740c.tar.bz2
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/elfread.c')
-rw-r--r--gdb/elfread.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 4e11071..cdef5a8 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -923,9 +923,10 @@ elf_gnu_ifunc_resolver_stop (struct breakpoint *b)
sal.pc = prev_pc;
sal.section = find_pc_overlay (sal.pc);
sal.explicit_pc = 1;
- b_return = set_momentary_breakpoint (get_frame_arch (prev_frame), sal,
- prev_frame_id,
- bp_gnu_ifunc_resolver_return);
+ b_return
+ = set_momentary_breakpoint (get_frame_arch (prev_frame), sal,
+ prev_frame_id,
+ bp_gnu_ifunc_resolver_return).release ();
/* set_momentary_breakpoint invalidates PREV_FRAME. */
prev_frame = NULL;