[RFA/7.8] user breakpoint not inserted if software-single-step at same location
Yao Qi
yao@codesourcery.com
Tue Jun 3 11:55:00 GMT 2014
On 05/30/2014 11:57 PM, Pedro Alves wrote:
> +int
> +main (void)
> +{
> + /* Assume writes to integers compile to a single instruction. */
This assumption is wrong on arm at least.
> + volatile int i = 0;
> +
> + i = 1; /* set foo break here */
> + i = 2; /* set bar break here */
> + return 0;
> +}
Each line is compiled to two instructions.
27 i = 1; /* set foo break here */
0x0000025c <+20>: mov r3, #1
0x00000260 <+24>: str r3, [r11, #-8]
28 i = 2; /* set bar break here */
0x00000264 <+28>: mov r3, #2
0x00000268 <+32>: str r3, [r11, #-8]
> +# On software single-step targets, this step will want to momentarily
> +# place a single-step breakpoint over the bar breakpoint, and then
> +# remove it. But, a regular breakpoint it planted there already, and
> +# with always-inserted on, should remain planted when the step
> +# finishes.
> +gdb_test "si" "Breakpoint .* bar break .*"
this test will fail, because it still stops at "foo break".
--
Yao (é½å°§)
More information about the Gdb-patches
mailing list