From: Andrew Burgess Date: Mon, 18 Aug 2025 10:49:21 +0000 (+0100) Subject: gdb: remove some unnecessary watchpoint_addr_within_range overrides X-Git-Tag: gdb-17-branchpoint~246 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f68e8167e9a24903d88bc52892479a28ffaaabe;p=thirdparty%2Fbinutils-gdb.git gdb: remove some unnecessary watchpoint_addr_within_range overrides While looking at the watchpoint code, I realised that AArch64, ARM, and Loongarch all override watchpoint_addr_within_range with an implementation that is the same as the default (but with the logic written slightly differently). Compare the deleted functions to default_watchpoint_addr_within_range in target.c. The only other targets that override watchpoint_addr_within_range are ppc_linux_nat_target and remote_target, in both cases the implementation is different to the default. Lets remove these unnecessary overrides, and just use the default. There should be no user visible changes after this commit. Approved-By: Simon Marchi --- diff --git a/gdb/aarch64-nat.h b/gdb/aarch64-nat.h index 3120bca083e..ec7c56452ae 100644 --- a/gdb/aarch64-nat.h +++ b/gdb/aarch64-nat.h @@ -92,10 +92,6 @@ struct aarch64_nat_target : public BaseTarget int remove_hw_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) override { return aarch64_remove_hw_breakpoint (gdbarch, bp_tgt); } - - bool watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start, - int length) override - { return start <= addr && start + length - 1 >= addr; } }; #endif /* GDB_AARCH64_NAT_H */ diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index 813da8cdda2..dc5165e3a79 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -90,8 +90,6 @@ public: bool stopped_data_address (CORE_ADDR *) override; - bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override; - const struct target_desc *read_description () override; /* Override linux_nat_target low methods. */ @@ -1206,14 +1204,6 @@ arm_linux_nat_target::stopped_by_watchpoint () return stopped_data_address (&addr); } -bool -arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, - CORE_ADDR start, - int length) -{ - return start <= addr && start + length - 1 >= addr; -} - /* Handle thread creation. We need to copy the breakpoints and watchpoints in the parent thread to the child thread. */ void diff --git a/gdb/loongarch-linux-nat.c b/gdb/loongarch-linux-nat.c index 2b59b364342..1360acf3d97 100644 --- a/gdb/loongarch-linux-nat.c +++ b/gdb/loongarch-linux-nat.c @@ -72,8 +72,6 @@ public: struct expression *cond) override; int remove_watchpoint (CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) override; - bool watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start, - int length) override; /* Add our hardware breakpoint and watchpoint implementation. */ bool stopped_by_watchpoint () override; @@ -581,15 +579,6 @@ loongarch_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len, } -bool -loongarch_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, - CORE_ADDR start, - int length) -{ - return start <= addr && start + length - 1 >= addr; -} - - /* Implement the "stopped_data_address" target_ops method. */ bool