summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2022-05-06 22:48:11 +0100
committerPedro Alves <pedro@palves.net>2022-05-20 20:41:00 +0100
commitb925bf21e073f0d9531385e8cfc3a825887c0778 (patch)
tree06b70de1951670dd4380b225250306b93c671df5
parent27a62b4359a2718012eaf86bbeedb8662ec9f41b (diff)
downloadbinutils-gdb-b925bf21e073f0d9531385e8cfc3a825887c0778.tar.gz
ranged_breakpoint: move initialization to ctor
Move initialization of ranged_breakpoint's fields to its ctor. Change-Id: If7b842861f3cc6a429ea329d45598b5852283ba3
-rw-r--r--gdb/breakpoint.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index ced976ca39d..1c1dbfb3ad7 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -317,9 +317,20 @@ struct dprintf_breakpoint : public ordinary_breakpoint
/* Ranged breakpoints. */
struct ranged_breakpoint : public ordinary_breakpoint
{
- explicit ranged_breakpoint (struct gdbarch *gdbarch)
+ explicit ranged_breakpoint (struct gdbarch *gdbarch,
+ const symtab_and_line &sal_start,
+ int length,
+ event_location_up start_location,
+ event_location_up end_location)
: ordinary_breakpoint (gdbarch, bp_hardware_breakpoint)
{
+ bp_location *bl = add_location (sal_start);
+ bl->length = length;
+
+ disposition = disp_donttouch;
+
+ location = std::move (start_location);
+ location_range_end = std::move (end_location);
}
int breakpoint_hit (const struct bp_location *bl,
@@ -9436,13 +9447,13 @@ break_range_command (const char *arg, int from_tty)
return;
}
- /* Now set up the breakpoint. */
- std::unique_ptr<breakpoint> br (new ranged_breakpoint (get_current_arch ()));
- br->add_location (sal_start);
- br->disposition = disp_donttouch;
- br->location = std::move (start_location);
- br->location_range_end = std::move (end_location);
- br->loc->length = length;
+ /* Now set up the breakpoint and install it. */
+
+ std::unique_ptr<breakpoint> br
+ (new ranged_breakpoint (get_current_arch (),
+ sal_start, length,
+ std::move (start_location),
+ std::move (end_location)));
install_breakpoint (false, std::move (br), true);
}