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.
This commit is contained in:
parent
059790a0c8
commit
dbbf180a81
2 changed files with 15 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2015-04-17 Yao Qi <yao.qi@linaro.org>
|
2015-04-17 Yao Qi <yao.qi@linaro.org>
|
||||||
Pedro Alves <palves@redhat.com>
|
Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
|
|
@ -771,12 +771,20 @@ arm_linux_can_use_hw_breakpoint (struct target_ops *self,
|
||||||
if (type == bp_hardware_watchpoint || type == bp_read_watchpoint
|
if (type == bp_hardware_watchpoint || type == bp_read_watchpoint
|
||||||
|| type == bp_access_watchpoint || type == bp_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;
|
return -1;
|
||||||
}
|
}
|
||||||
else if (type == bp_hardware_breakpoint)
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue