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 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


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