Re: [rfc] Fix PowerPC displaced stepping regression

Pedro Alves
2009-09-28T17:39:19Z

On Monday 28 September 2009 18:27:03, Ulrich Weigand wrote:

> > ... that is, we'd remove the checks for use_displaced_stepping from
> > maybe_software_singlestep, and use something like the
> > above in displaced_step_fixup, where we issue the target_resume
> > (with `step' being what gdbarch_displaced_step_copy_insn reported
> > it wanted).
>
> Maybe I misunderstood your point here, but I don't think we can
> actually do SW single-step on the displaced copy (using the normal
> SW single-step mechanism). The way SW single-step ususally works
> is to place breakpoints at all potential branch targets. But if
> we have a displaced PC-relative branch, for example, the branch
> target may not even point to addressable memory, so we cannot put
> breakpoints there.

If you get yourself such an instruction in the buffer, usually you'd
want the branch offset had to be adjusted at displaced copy time,
otherwise it seems to be you're already broken. But I did post a
confusing snippet, sorry. All I meant was to have displaced_step_copy
routine to tell infrun.c to call target_resume(continue), instead
of target_resume(step). Your version works for that too.

> It seems best to never call maybe_software_single_step on displaced
> copies, like my patch does. If the target wants to place breakpoint
> instructions somewhere in there, it can do so during copy_insn.

Yes, like arm does.

--
Pedro Alves