Re: [PATCH 0/9 V3] Use reinsert breakpoint for vCont;s

Antoine Tremblay
2016-11-25T13:57:46Z

Pedro Alves writes:

> I'm behind on this whole discussion, but, the comment below
> caught my attention:
>
> On 11/25/2016 01:12 PM, Antoine Tremblay wrote:
>
>> In fact thinking more about this we may need to remove all breakpoints
>> at any pc since get_next_pc may read memory in other places then the
>> current pc to deal with atomic sequences for example or for other
>> instructions too.
>>
>> If it reads a breakpoint in memory there it may come-up with an invalid
>> next pc.
>
> How can that happen, given gdbserver's memory read routine takes
> share to hide breakpoint breakpoints?
>
> I.e., read_inferior_memory -> check_mem_read.
>

Indeed, this is because arm_get_next_pc uses (*the_target->read_memory)
directly.

This should be fixed for read_inferior_memory indeed and it would solve
this issue, sorry I was not so familiar with the check_mem_read hiding
breakpoints/fast tracepoints jumps.

I'm not sure why it uses that directly at the moment, looks like a plain
misstake but I'll dig a bit more.

But it's just what we need this may easily fix that issue in particular!

Thanks,
Antoine