aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-linux-nat.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2015-04-17 13:52:44 +0100
committerYao Qi <yao.qi@linaro.org>2015-04-17 13:52:44 +0100
commitdbbf180a8176d59eb04d20a681c0e77e2b0551a5 (patch)
tree819218a3aa36cbb8d6abcfdbca6d4f1db1c2b5f3 /gdb/arm-linux-nat.c
parent059790a0c8f4672da9ed5a6289d1fd9edc0f169f (diff)
downloadgdb-dbbf180a8176d59eb04d20a681c0e77e2b0551a5.zip
gdb-dbbf180a8176d59eb04d20a681c0e77e2b0551a5.tar.gz
gdb-dbbf180a8176d59eb04d20a681c0e77e2b0551a5.tar.bz2
return zero in arm_linux_can_use_hw_breakpoint if HW point isn't supported
This patch is to cherry-pick part of Pedro's patch here https://sourceware.org/ml/gdb-patches/2015-04/msg00527.html in which zero is returned if the HW point isn't supported. In arm-linux native gdb testing on a board doesn't support HW breakpoint, without this patch, the output in gdb.base/breakpoint-in-ro-region.exp is like: (gdb) hbreak *0x83bc^M Hardware breakpoints used exceeds limit.^M (gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: probe hbreak support (support) with this patch, the output becomes: (gdb) hbreak *0x83bc^M No hardware breakpoint support in the target.^M (gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: probe hbreak support (no support) As a result, the following fails are fixed. -FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw on: step in ro region (cannot insert hw break) -FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw on: thread advanced -FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw on: step in ro region (cannot insert hw break) -FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw on: thread advanced gdb: 2015-04-17 Pedro Alves <palves@redhat.com> * arm-linux-nat.c (arm_linux_can_use_hw_breakpoint): Return zero if HW point of TYPE isn't supported.
Diffstat (limited to 'gdb/arm-linux-nat.c')
-rw-r--r--gdb/arm-linux-nat.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index bb8358c..afc5817 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -771,12 +771,20 @@ arm_linux_can_use_hw_breakpoint (struct target_ops *self,
if (type == bp_hardware_watchpoint || type == bp_read_watchpoint
|| type == bp_access_watchpoint || type == bp_watchpoint)
{
- if (cnt + ot > arm_linux_get_hw_watchpoint_count ())
+ int count = arm_linux_get_hw_watchpoint_count ();
+
+ if (count == 0)
+ return 0;
+ else if (cnt + ot > count)
return -1;
}
else if (type == bp_hardware_breakpoint)
{
- if (cnt > arm_linux_get_hw_breakpoint_count ())
+ int count = arm_linux_get_hw_breakpoint_count ();
+
+ if (count == 0)
+ return 0;
+ else if (cnt > count)
return -1;
}
else