ChangeLog:
* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Do not attempt to 4-byte-align HW breakpoint addresses for Thumb. gdbserver/ChangeLog: * linux-arm-low.c (arm_linux_hw_point_initialize): Do not attempt to 4-byte-align HW breakpoint addresses for Thumb.
This commit is contained in:
parent
4e969b4f01
commit
fcf303aba3
4 changed files with 22 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
|||
2012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Do not
|
||||
attempt to 4-byte-align HW breakpoint addresses for Thumb.
|
||||
|
||||
2012-07-30 Andrew Burgess <aburgess@broadcom.com>
|
||||
|
||||
* varobj.c (varobj_invalidate_iter): All varobj must be marked as
|
||||
|
|
|
@ -896,11 +896,17 @@ arm_linux_hw_breakpoint_initialize (struct gdbarch *gdbarch,
|
|||
/* We have to create a mask for the control register which says which bits
|
||||
of the word pointed to by address to break on. */
|
||||
if (arm_pc_is_thumb (gdbarch, address))
|
||||
mask = 0x3 << (address & 2);
|
||||
{
|
||||
mask = 0x3;
|
||||
address &= ~1;
|
||||
}
|
||||
else
|
||||
mask = 0xf;
|
||||
{
|
||||
mask = 0xf;
|
||||
address &= ~3;
|
||||
}
|
||||
|
||||
p->address = (unsigned int) (address & ~3);
|
||||
p->address = (unsigned int) address;
|
||||
p->control = arm_hwbp_control_initialize (mask, arm_hwbp_break, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* linux-arm-low.c (arm_linux_hw_point_initialize): Do not attempt
|
||||
to 4-byte-align HW breakpoint addresses for Thumb.
|
||||
|
||||
2012-07-27 Yao Qi <yao@codesourcery.com>
|
||||
|
||||
PR remote/14161.
|
||||
|
|
|
@ -474,17 +474,17 @@ arm_linux_hw_point_initialize (char type, CORE_ADDR addr, int len,
|
|||
{
|
||||
case 2: /* 16-bit Thumb mode breakpoint */
|
||||
case 3: /* 32-bit Thumb mode breakpoint */
|
||||
mask = 0x3 << (addr & 2);
|
||||
mask = 0x3;
|
||||
addr &= ~1;
|
||||
break;
|
||||
case 4: /* 32-bit ARM mode breakpoint */
|
||||
mask = 0xf;
|
||||
addr &= ~3;
|
||||
break;
|
||||
default:
|
||||
/* Unsupported. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
addr &= ~3;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue