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


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

 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?

-JX

BTW: since generating the patch I have discovered that the
add_set_cmd() should actually be using var_boolean.


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