summaryrefslogtreecommitdiff
path: root/gdb/nat/aarch64-linux-hw-point.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/nat/aarch64-linux-hw-point.c')
-rw-r--r--gdb/nat/aarch64-linux-hw-point.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gdb/nat/aarch64-linux-hw-point.c b/gdb/nat/aarch64-linux-hw-point.c
index 18b5af2d49b..b446e198310 100644
--- a/gdb/nat/aarch64-linux-hw-point.c
+++ b/gdb/nat/aarch64-linux-hw-point.c
@@ -717,6 +717,26 @@ aarch64_linux_set_debug_regs (struct aarch64_debug_reg_state *state,
}
}
+/* See nat/aarch64-linux-hw-point.h. */
+
+bool
+aarch64_linux_any_set_debug_regs_state (aarch64_debug_reg_state *state,
+ bool watchpoint)
+{
+ int count = watchpoint ? aarch64_num_wp_regs : aarch64_num_bp_regs;
+ if (count == 0)
+ return false;
+
+ const CORE_ADDR *addr = watchpoint ? state->dr_addr_wp : state->dr_addr_bp;
+ const unsigned int *ctrl = watchpoint ? state->dr_ctrl_wp : state->dr_ctrl_bp;
+
+ for (int i = 0; i < count; i++)
+ if (addr[i] != 0 || ctrl[i] != 0)
+ return true;
+
+ return false;
+}
+
/* Print the values of the cached breakpoint/watchpoint registers. */
void