From 055c879fcf242e43a6ef8190f83905109922da93 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 27 May 2021 14:58:38 -0400 Subject: [PATCH] gdb: remove iterate_over_bp_locations function Remove it, change users (well, a single one) to use all_bp_locations. This requires moving all_bp_locations to breakpoint.h to expose it. gdb/ChangeLog: * breakpoint.h (iterate_over_bp_locations): Remove. Update users to use all_bp_locations. (all_bp_locations): New. * breakpoint.c (all_bp_locations): Make non-static. (iterate_over_bp_locations): Remove. Change-Id: Iaf1f716d6c2c5b2975579b3dc113a86f5d0975be --- gdb/ChangeLog | 8 ++++++++ gdb/breakpoint.c | 13 +++---------- gdb/breakpoint.h | 7 ++++--- gdb/record-full.c | 26 ++++++++++---------------- 4 files changed, 25 insertions(+), 29 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7bca8f086f7..66a16df8c95 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2021-05-27 Simon Marchi + + * breakpoint.h (iterate_over_bp_locations): Remove. Update + users to use all_bp_locations. + (all_bp_locations): New. + * breakpoint.c (all_bp_locations): Make non-static. + (iterate_over_bp_locations): Remove. + 2021-05-27 Simon Marchi * breakpoint.h (iterate_over_breakpoints): Remove. Update diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 401367d3740..4d5c0dd5982 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -521,7 +521,9 @@ all_tracepoints () static std::vector bp_locations; -static const std::vector & +/* See breakpoint.h. */ + +const std::vector & all_bp_locations () { return bp_locations; @@ -2913,15 +2915,6 @@ insert_breakpoints (void) update_global_location_list (UGLL_INSERT); } -/* Invoke CALLBACK for each of bp_location. */ - -void -iterate_over_bp_locations (gdb::function_view callback) -{ - for (bp_location *loc : all_bp_locations ()) - callback (loc); -} - /* This is used when we need to synch breakpoint conditions between GDB and the target. It is the case with deleting and disabling of breakpoints when using always-inserted mode. */ diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index ffe042459ee..e40504f14ed 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -1313,9 +1313,6 @@ extern void breakpoint_init_inferior (enum inf_context); extern void breakpoint_auto_delete (bpstat); -extern void iterate_over_bp_locations - (gdb::function_view callback); - /* Return the chain of command lines to execute when this breakpoint is hit. */ extern struct command_line *breakpoint_commands (struct breakpoint *b); @@ -1755,6 +1752,10 @@ using tracepoint_range = next_adapter; tracepoint_range all_tracepoints (); +/* Return a range to iterate over all breakpoint locations. */ + +const std::vector &all_bp_locations (); + /* Nonzero if the specified PC cannot be a location where functions have been inlined. */ diff --git a/gdb/record-full.c b/gdb/record-full.c index 03e39eeaf3a..e3b8abc4929 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -1719,21 +1719,6 @@ struct record_full_breakpoint active. */ static std::vector record_full_breakpoints; -static void -record_full_sync_record_breakpoints (struct bp_location *loc) -{ - if (loc->loc_type != bp_loc_software_breakpoint) - return; - - if (loc->inserted) - { - record_full_breakpoints.emplace_back - (loc->target_info.placed_address_space, - loc->target_info.placed_address, - 1); - } -} - /* Sync existing breakpoints to record_full_breakpoints. */ static void @@ -1741,7 +1726,16 @@ record_full_init_record_breakpoints (void) { record_full_breakpoints.clear (); - iterate_over_bp_locations (record_full_sync_record_breakpoints); + for (bp_location *loc : all_bp_locations ()) + { + if (loc->loc_type != bp_loc_software_breakpoint) + continue; + + if (loc->inserted) + record_full_breakpoints.emplace_back + (loc->target_info.placed_address_space, + loc->target_info.placed_address, 1); + } } /* Behavior is conditional on RECORD_FULL_IS_REPLAY. We will not actually -- 2.30.2