This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Powerpc and software single step
On Tue, Aug 19, 2003 at 06:32:31PM -0400, Jimi Xenidis wrote:
> >>>>> "DJ" == Daniel Jacobowitz <drow@mvista.com> writes:
>
> DJ> On Tue, Aug 19, 2003 at 10:55:13AM -0700, Kevin Buettner wrote:
>
> >> 2) Why is ``ppc_linux_single_step_mode'' an extern in tm-linux.h? I
> >> would really prefer that it be local to ppc-linux-tdep.c. If
> >> there's some compelling reason for it to not be local, then we can
> >> discuss adding it to ppc-tdep.h.
>
> DJ> Could we do this slightly differently? SOFTWARE_SINGLE_STEP_P is used
> DJ> in two non-platform-specific files: infptrace.c for a sanity
> DJ> check,
> This sanity check is wierd, does it expect PT_STEP to be defined _and_
> not supported?
It does happen. MIPS/Linux does that sometimes, so does anything else
where PT_STEP is restricted or broken.
> DJ> Why not add a hook to check there which lets the user use software
> DJ> single step? It'll require playing with the target macros; we'd need
> DJ> something like:
> DJ> SOFTWARE_SINGLE_STEP - perform software single step
> DJ> SOFTWARE_SINGLE_STEP_P - SOFTWARE_SINGLE_STEP available
> DJ> SOFTWARE_SINGLE_STEP_ONLY_P - no hardware singlestep available
> DJ> (check that in infptrace instead of SOFTWARE_SINGLE_STEP_P?)
>
> I believe that this increases the complexity of the solution.
> On first inspection it looks like the proper solution is simply
> abstracting single step and let the code do the appropriate
> thing.. but that could easily break older targets that are not
> actively maintained, but I yield to senior heads on this.
>
> My first attempt was to drag ppc/rs6000 into the gdbarch world and
> drop the #defines all together. However, the test (_P) rotuine tests
> a function pointer and it was not readily apparent how to have a set
> command set a function pointer or actually run code to do so. Perhaps
> pairing it with a gdbarch boolean?
I'm not sure what you mean. I actually left out something from my
example; above would be macros set by the architecture, and there would
be a USE_SOFTWARE_SINGLE_STEP_P that would be user controlled but
default based the architecture.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer