Re: [PATCH v3 09/17] Teach non-stop to do in-line step-overs (stop all, step, restart)

Pedro Alves
2015-04-17T11:01:49Z

On 04/17/2015 11:45 AM, Pedro Alves wrote:
> make non-stop work for all (albeit, not as efficiently). And then
> there are scenarios where even if the architecture supports displaced
> stepping, we can't use it, because we e.g., don't find a usable
> address to use as displaced step scratch pad. It should also fix
> stepping past watchpoints on targets that have non-continuable
> watchpoints in non-stop mode (e.g., PPC, untested).

Reading back, I notice that wrote that "should fix" and "untested"
back before v1, and forgot to update it since. This definitely
fixes that scenario.

Since:
https://sourceware.org/ml/gdb-patches/2015-04/msg00384.html
PPC64: Fix step-over-trips-on-watchpoint.exp with displaced stepping on

GDB now does not start a displaced step if it need to step
over a watchpoint, instead if steps the instruction at the
original address. What was missing was pausing all threads
in order to be able to remove the watchpoint without other
threads missing it -- that's what's fixed by this patch.

> Running the
> instruction out of line in the displaced stepping scratch pad doesn't
> help that case, as the copied instruction reads/writes the same
> watched memory... We can fix that too by teaching GDB to only remove
> the watchpoint from the thread that we want to move past the
> watchpoint (currently, removing a watchpoint always removes it from
> all threads), but again, that can be considered an optimization; not
> all targets would support it.

I'll update the commit log before pushing.

Thanks,
Pedro Alves