This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Powerpc and software single step


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]