aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2022-09-23 11:48:11 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2023-02-02 10:02:33 -0500
commitb82d4ec99e3347b62a16cf5456628a37a128a99b (patch)
treeeee5895086a1b48dcc3007660f8f600b7a7ac610
parent1a8505cb53faa1c191d09ba221f9b0ec383ccfde (diff)
downloadgdb-b82d4ec99e3347b62a16cf5456628a37a128a99b.zip
gdb-b82d4ec99e3347b62a16cf5456628a37a128a99b.tar.gz
gdb-b82d4ec99e3347b62a16cf5456628a37a128a99b.tar.bz2
gdb: make install_breakpoint return a non-owning reference
A following patch will want to install a breakpoint and then keep a non-owning reference to it. Make install_breakpoint return a non-owning reference, to make that easy. Co-Authored-By: Simon Marchi <simon.marchi@efficios.com> Change-Id: I2e8106a784021ff276ce251e24708cbdccc2d479 Approved-By: Andrew Burgess <aburgess@redhat.com>
-rw-r--r--gdb/breakpoint.c4
-rw-r--r--gdb/breakpoint.h8
2 files changed, 8 insertions, 4 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 00cc2ab..e25c588 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -7956,7 +7956,7 @@ catchpoint::catchpoint (struct gdbarch *gdbarch, bool temp,
pspace = current_program_space;
}
-void
+breakpoint *
install_breakpoint (int internal, std::unique_ptr<breakpoint> &&arg, int update_gll)
{
breakpoint *b = add_to_breakpoint_chain (std::move (arg));
@@ -7969,6 +7969,8 @@ install_breakpoint (int internal, std::unique_ptr<breakpoint> &&arg, int update_
if (update_gll)
update_global_location_list (UGLL_MAY_INSERT);
+
+ return b;
}
static int
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 399bd03..352e846 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -1484,10 +1484,12 @@ extern void
target and breakpoint_created observers of its existence. If
INTERNAL is non-zero, the breakpoint number will be allocated from
the internal breakpoint count. If UPDATE_GLL is non-zero,
- update_global_location_list will be called. */
+ update_global_location_list will be called.
-extern void install_breakpoint (int internal, std::unique_ptr<breakpoint> &&b,
- int update_gll);
+ Takes ownership of B, and returns a non-owning reference to it. */
+
+extern breakpoint *install_breakpoint
+ (int internal, std::unique_ptr<breakpoint> &&b, int update_gll);
/* Returns the breakpoint ops appropriate for use with with LOCSPEC
and according to IS_TRACEPOINT. Use this to ensure, for example,