mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 18:08:24 +08:00
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:
@ -486,15 +486,12 @@ catch_syscall_enabled (void)
|
||||
return inf_data->total_syscalls_count != 0;
|
||||
}
|
||||
|
||||
/* Helper function for catching_syscall_number. If B is a syscall
|
||||
catchpoint for SYSCALL_NUMBER, return 1 (which will make
|
||||
'breakpoint_find_if' return). Otherwise, return 0. */
|
||||
/* Helper function for catching_syscall_number. return true if B is a syscall
|
||||
catchpoint for SYSCALL_NUMBER, else false. */
|
||||
|
||||
static int
|
||||
catching_syscall_number_1 (struct breakpoint *b,
|
||||
void *data)
|
||||
static bool
|
||||
catching_syscall_number_1 (struct breakpoint *b, int syscall_number)
|
||||
{
|
||||
int syscall_number = (int) (uintptr_t) data;
|
||||
|
||||
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)
|
||||
if (syscall_number == iter)
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
int
|
||||
bool
|
||||
catching_syscall_number (int syscall_number)
|
||||
{
|
||||
struct breakpoint *b = breakpoint_find_if (catching_syscall_number_1,
|
||||
(void *) (uintptr_t) syscall_number);
|
||||
for (breakpoint *b : all_breakpoints ())
|
||||
if (catching_syscall_number_1 (b, syscall_number))
|
||||
return true;
|
||||
|
||||
return b != NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Complete syscall names. Used by "catch syscall". */
|
||||
|
@ -627,19 +627,6 @@ static struct cmd_list_element *breakpoint_set_cmdlist;
|
||||
static struct cmd_list_element *breakpoint_show_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. */
|
||||
static int
|
||||
breakpoint_enabled (struct breakpoint *b)
|
||||
|
@ -885,20 +885,6 @@ struct watchpoint : public breakpoint
|
||||
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
|
||||
breakpoint. */
|
||||
|
||||
@ -1678,8 +1664,8 @@ extern int catch_syscall_enabled (void);
|
||||
|
||||
/* Checks if we are catching syscalls with the specific
|
||||
syscall_number. Used for "filtering" the catchpoints.
|
||||
Returns 0 if not, greater than 0 if we are. */
|
||||
extern int catching_syscall_number (int syscall_number);
|
||||
Returns false if not, true if we are. */
|
||||
extern bool catching_syscall_number (int syscall_number);
|
||||
|
||||
/* Return a tracepoint with the given number if found. */
|
||||
extern struct tracepoint *get_tracepoint (int num);
|
||||
|
@ -4458,7 +4458,7 @@ handle_syscall_event (struct execution_control_state *ecs)
|
||||
ecs->event_thread->set_stop_pc (regcache_read_pc (regcache));
|
||||
|
||||
if (catch_syscall_enabled () > 0
|
||||
&& catching_syscall_number (syscall_number) > 0)
|
||||
&& catching_syscall_number (syscall_number))
|
||||
{
|
||||
infrun_debug_printf ("syscall number=%d", syscall_number);
|
||||
|
||||
|
Reference in New Issue
Block a user