I've worked up a simple patch to allow the use of the hardware debug
registers within the kernel debugger.  Support is very rudimentary at
this stage: you have to set the actual register values yourself.  I've
included a handy little program to help with that, though.
This patch will allow you to set a hardware watchpoint to watch up to
16 bytes of data (up to 4 watchpoints of up to 4 bytes each) and
generate a debug trap when that data is read or written (depends on
the type of the watchpoint specified, "wo", or "rw").

If you suspect a memory overwrite bug and know the address being
overwritten, using these registers can find it for you fast.  While
the watch is in effect, unlike with a software watch point, the CPU
runs at full speed.  This is the primary benefit of the hardware debug
support and can make debug sessions take only minutes that otherwise
literally take days.
An execution breakpoint may also be specified (type "ex"), but this is
probably only useful if you are debugging code in ROM.
Please see:
Please review and comment.  This support, while very low level at this
point, but can be real handy.
Brian Dean

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to