aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2021-08-30 16:10:41 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2021-08-31 09:55:31 -0400
commit9fe3819e83a442f1bd563000120121e5518f7d53 (patch)
tree460f1bcd0c4c163581170e926f48e15b01d12d66
parent88ae41e17980533927f98339bcb40015522f06c4 (diff)
downloadbinutils-9fe3819e83a442f1bd563000120121e5518f7d53.zip
binutils-9fe3819e83a442f1bd563000120121e5518f7d53.tar.gz
binutils-9fe3819e83a442f1bd563000120121e5518f7d53.tar.bz2
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
-rw-r--r--gdb/break-catch-syscall.c26
-rw-r--r--gdb/breakpoint.c13
-rw-r--r--gdb/breakpoint.h18
-rw-r--r--gdb/infrun.c2
4 files changed, 15 insertions, 44 deletions
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 78e7079..32736f0 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -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". */
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index feca224..f6c9683 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -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)
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index ab65f41..2b15622 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -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);
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 5ee650f..694bbe6 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -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);