gdb: remove breakpoint_find_if

Remove breakpoint_find_if, replace its sole usage with using
all_breakpoints directly instead.  At the same time, change return
types to use bool.

Change-Id: I9ec392236b4804b362d16ab563330b9c07311106
This commit is contained in:
Simon Marchi
2021-08-30 16:10:41 -04:00
parent 88ae41e179
commit 9fe3819e83
4 changed files with 15 additions and 44 deletions

View File

@ -486,15 +486,12 @@ catch_syscall_enabled (void)
return inf_data->total_syscalls_count != 0; return inf_data->total_syscalls_count != 0;
} }
/* Helper function for catching_syscall_number. If B is a syscall /* Helper function for catching_syscall_number. return true if B is a syscall
catchpoint for SYSCALL_NUMBER, return 1 (which will make catchpoint for SYSCALL_NUMBER, else false. */
'breakpoint_find_if' return). Otherwise, return 0. */
static int static bool
catching_syscall_number_1 (struct breakpoint *b, catching_syscall_number_1 (struct breakpoint *b, int syscall_number)
void *data)
{ {
int syscall_number = (int) (uintptr_t) data;
if (is_syscall_catchpoint_enabled (b)) if (is_syscall_catchpoint_enabled (b))
{ {
@ -504,22 +501,23 @@ catching_syscall_number_1 (struct breakpoint *b,
{ {
for (int iter : c->syscalls_to_be_caught) for (int iter : c->syscalls_to_be_caught)
if (syscall_number == iter) if (syscall_number == iter)
return 1; return true;
} }
else else
return 1; return true;
} }
return 0; return false;
} }
int bool
catching_syscall_number (int syscall_number) catching_syscall_number (int syscall_number)
{ {
struct breakpoint *b = breakpoint_find_if (catching_syscall_number_1, for (breakpoint *b : all_breakpoints ())
(void *) (uintptr_t) syscall_number); if (catching_syscall_number_1 (b, syscall_number))
return true;
return b != NULL; return false;
} }
/* Complete syscall names. Used by "catch syscall". */ /* Complete syscall names. Used by "catch syscall". */

View File

@ -627,19 +627,6 @@ static struct cmd_list_element *breakpoint_set_cmdlist;
static struct cmd_list_element *breakpoint_show_cmdlist; static struct cmd_list_element *breakpoint_show_cmdlist;
struct cmd_list_element *save_cmdlist; struct cmd_list_element *save_cmdlist;
/* See declaration at breakpoint.h. */
struct breakpoint *
breakpoint_find_if (int (*func) (struct breakpoint *b, void *d),
void *user_data)
{
for (breakpoint *b : all_breakpoints ())
if (func (b, user_data) != 0)
return b;
return nullptr;
}
/* Return whether a breakpoint is an active enabled breakpoint. */ /* Return whether a breakpoint is an active enabled breakpoint. */
static int static int
breakpoint_enabled (struct breakpoint *b) breakpoint_enabled (struct breakpoint *b)

View File

@ -885,20 +885,6 @@ struct watchpoint : public breakpoint
CORE_ADDR hw_wp_mask; CORE_ADDR hw_wp_mask;
}; };
/* Given a function FUNC (struct breakpoint *B, void *DATA) and
USER_DATA, call FUNC for every known breakpoint passing USER_DATA
as argument.
If FUNC returns 1, the loop stops and the current
'struct breakpoint' being processed is returned. If FUNC returns
zero, the loop continues.
This function returns either a 'struct breakpoint' pointer or NULL.
It was based on BFD's bfd_sections_find_if function. */
extern struct breakpoint *breakpoint_find_if
(int (*func) (struct breakpoint *b, void *d), void *user_data);
/* Return true if BPT is either a software breakpoint or a hardware /* Return true if BPT is either a software breakpoint or a hardware
breakpoint. */ breakpoint. */
@ -1678,8 +1664,8 @@ extern int catch_syscall_enabled (void);
/* Checks if we are catching syscalls with the specific /* Checks if we are catching syscalls with the specific
syscall_number. Used for "filtering" the catchpoints. syscall_number. Used for "filtering" the catchpoints.
Returns 0 if not, greater than 0 if we are. */ Returns false if not, true if we are. */
extern int catching_syscall_number (int syscall_number); extern bool catching_syscall_number (int syscall_number);
/* Return a tracepoint with the given number if found. */ /* Return a tracepoint with the given number if found. */
extern struct tracepoint *get_tracepoint (int num); extern struct tracepoint *get_tracepoint (int num);

View File

@ -4458,7 +4458,7 @@ handle_syscall_event (struct execution_control_state *ecs)
ecs->event_thread->set_stop_pc (regcache_read_pc (regcache)); ecs->event_thread->set_stop_pc (regcache_read_pc (regcache));
if (catch_syscall_enabled () > 0 if (catch_syscall_enabled () > 0
&& catching_syscall_number (syscall_number) > 0) && catching_syscall_number (syscall_number))
{ {
infrun_debug_printf ("syscall number=%d", syscall_number); infrun_debug_printf ("syscall number=%d", syscall_number);