Powerpc and software single step

Andrew Cagney ac131313@redhat.com
Thu Aug 21 14:01:00 GMT 2003


> 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




More information about the Gdb-patches mailing list