"David" == David Daney <ddaney@avtrex.com> writes:
David> Paul Koning wrote:
>>>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
>>
David> GDB has had support for i386 debug registers on linux for
David> quite some time now.
>>
David> I was wondering if anyone has worked on similar support for
David> the hardware debug support available in some MIPS processors?
>> Yes, I have it on MIPS/sb1.
>>
David> Great!
David> Could you be more specific? Like where are the kernel patches
David> to expose the debugs registers to ptrace and the gdb patches
David> to take advantage of them?
As Daniel pointed out, the kernel and ptrace changes are really the
issue here.
We modified a NetBSD 1.6.2 kernel, adding watchpoint primitives to its
gdb stub (for kernel debug) and also to its ptrace. The ptrace stuff
was a bit hairy because you have to context switch that state.
I don't think I had to change gdb at all, except perhaps for setting
the #define symbols to turn the feature on and describe its behavior
correctly with respect to single stepping.
Well, there was a bug at least in the earlier 6.x gdb releases where
the code to sort out breakpoints and watchpoints would come up with
the wrong answer if you hit a watchpoint while a breakpoint was also
active (even at some entirely different address).
And yes, the notion of watchpoint is in the MIPS architecture but the
specifics vary among implementations. I have seen several, and they
are close enough that a single gdb talking the same remote protocol
works with all of them, but the target end does change somewhat from
one MIPS flavor to the next.