xmon rewrite

Paul Mackerras paulus at samba.org
Tue Apr 20 14:20:20 EST 2004

I have rewritten the breakpoint handling and entry/exit code in xmon
to make it much more usable on SMP systems.  On entry, xmon will now
send an IPI to all other processors to get them into xmon as well, and
on exit they are all released.

Breakpoint handling and single-stepping has also been improved.  Xmon
can now continue from a breakpoint, or do a single step at a location
where a breakpoint is installed, without having to disable that
breakpoint temporarily.  (Instead it either emulates the instruction,
or copies it to another place and executes it there.)

Data address breakpoints are implemented but I don't yet have a good
way for xmon to proceed from a data address breakpoint.  If you do try
to step, or to exit xmon, that cpu will just hit the breakpoint again
straight away.  You'll have to remove the data address breakpoint to
continue.  The obvious thing is to emulate the instruction but that
will involve adding code to emulate all load and store instructions.

The stack traces are also improved.  Xmon should now detect exception
frames in the stack trace fairly reliably, and it has some heuristics
to work out whether the LR value and/or the first stack frame contain
a valid return address that should be printed.

Comments welcome.  It would be good if people could try this out and
let me know how it goes.  If there are no problems I'll commit it to
ameslab.  (Anton has tested a slightly different version of this
patch, but I haven't been able to test this one yet.)

The patch is at http://ozlabs.org/~paulus/newxmon-nox.patch.gz.  Sorry
for the inconvenience, but the mailing list won't let me include the
patch inline.


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/

More information about the Linuxppc64-dev mailing list