Re: Powerpc and software single step

Andrew Cagney
2003-08-21T14:01:32Z

> On Tue, Aug 19, 2003 at 10:30:20PM -0400, Andrew Cagney wrote:
>
>>
>
>> >Could we do this slightly differently? SOFTWARE_SINGLE_STEP_P is used
>> >in two non-platform-specific files: infptrace.c for a sanity check, and
>> >infrun.c. In infrun, the only line which matters for this case is in
>> >resume:
>> > if (SOFTWARE_SINGLE_STEP_P () && step)
>> >
>> >Why not add a hook to check there which lets the user use software
>> >single step? It'll require playing with the target macros; we'd need
>> >something like:
>> > SOFTWARE_SINGLE_STEP - perform software single step
>> > SOFTWARE_SINGLE_STEP_P - SOFTWARE_SINGLE_STEP available
>> > SOFTWARE_SINGLE_STEP_ONLY_P - no hardware singlestep available
>> > (check that in infptrace instead of SOFTWARE_SINGLE_STEP_P?)
>> >
>> >I've wanted to flip back and forth at runtime before.
>
>>
>> See: Cleanup software single step.
>> http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gdb&pr=120
>> (but don't take the suggested solution literally).
>>
>> I think kevin was playing with it (?) - search the mail archives. This
>> needs to be fixed - I don't think a workaround is acceptable.
>
>
> I _think_ that's a different problem...

It's all part of a `software single step is sideways / backwards
problem'. Missing from the PR are the gdbarch.sh comments (and
references to earlier discussion):

# FIXME/cagney/2001-01-18: This should be split in two. A target method
that indicates if
# the target needs software single step. An ISA method to implement it.
#
# FIXME/cagney/2001-01-18: This should be replaced with something that
inserts breakpoints
# using the breakpoint system instead of blatting memory directly (as
with rs6000).
#
# FIXME/cagney/2001-01-18: The logic is backwards. It should be asking
if the target can
# single step. If not, then implement single step using breakpoints.

"infrun.c" should make its decision based on:

- user selectable single step (yes, no, auto -> auto boolean variable)
(new to this thread)
- target selectable single step
- architecture implement's software single step (which needs a new
mechanism)

Adding a user command would side step the middle part - target vector
addition to indicate that the target supports software single step - but
would at least provide a workaround.

> In any case it's definitely a real problem. See the post I made a few
> days ago about a thread debugging problem which causes single steps to
> turn into continues.

Andrew