Re: [RFC] Debugging with a HW probe.

2 messages, 2 authors, 2006-08-09 · open the first message on its own page

Re: [RFC] Debugging with a HW probe.

From: Milton Miller <hidden>
Date: 2006-08-09 01:23:40

On Sun Aug  6 2006 09:42:16 AM CDT, Jimi Xenidis wrote:
On the XenPPC project we've been playing around with using GDB to
source debug Linux (and Xen) using a RiscWatch HW probe.
We have found it useful to teach xmon to make this call so we can then
debug the SW thru the probe. Is this useful to anyone else
Since you only invoke the attention on command from the debugger, how
is this better than just invoking the stop command from the probe?  Is it you
are not dispatched out?  That you are not at a random point in the input
polling?

milton

Re: [RFC] Debugging with a HW probe.

From: Jimi Xenidis <hidden>
Date: 2006-08-09 10:44:44

On Aug 8, 2006, at 9:22 PM, Milton Miller wrote:
On Sun Aug  6 2006 09:42:16 AM CDT, Jimi Xenidis wrote:
quoted
On the XenPPC project we've been playing around with using GDB to
source debug Linux (and Xen) using a RiscWatch HW probe.
quoted
We have found it useful to teach xmon to make this call so we can  
then
debug the SW thru the probe. Is this useful to anyone else
Since you only invoke the attention on command from the debugger, how
is this better than just invoking the stop command from the probe?   
Is it you
are not dispatched out?  That you are not at a random point in the  
input
polling?
Thats exactly it!
If I get the probe to stop the CPU I could stop in the OS or in a  
user app.  Since we are working on Xen it could be Xen or any number  
of OSes or user apps on OSes.
When interrogating the machine state, the probe (almost) respects the  
modes of the CPU and MMU so memory accesses are translated (if xlate  
is on).  Since, probe "soft breakpoints" are ATTN instructions as  
well they get written into memory by the probe.

Having SW "call out" allows me to make sure that I'm in the address  
space I care about.
Since I only invoke it from xmon it assumes you have xmon support and  
to really be useful you need to SysReq to xmon.
I could be useful to make this part of SysReq, but I think we want to  
make sure that its use is entirely intentional.
You can also insert 'asm volatile(".long 0x200;nop");' in you own  
code or even add it to BUG()/panic() and skip the suffering the xmon/ 
SysReq trap.

BTW: I say "almost" because the probe does not respect the truncating  
of the upper bits when xlate is off and 0xC00... addresses are  
useless, we hacked the gdb stub to work around that.
BTW2: (I'm sure obvious to some), Since the probe writes ATTN  
instructions, I do not know what would happen if the probe wrote ATTN  
to an unmapped page, this is why debugging user space might be useless.
-JX
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help