On Mon, Nov 25, 2002 at 10:01:52AM -0000, atul srivastava wrote:
> >The whole watch stuff in the the kernel is pretty much an ad-hoc
> >API
> >which I did create to debug a stack overflow. I'm sure if
> >you're
> >going to use it you'll find problems. For userspace for example
> >you'd
> >have to switch the watch register when switching the MMU context
> >so
> >each process gets it's own virtual watch register.
> Beyond that there
> >are at least two different formats of watch registers implemented
> >in
> >actual silicon, the original R4000-style and the MIPS32/MIPS64
> >style
> >watch registers and the kernel's watch code only know the R4000
> >style
(It's horrible what mailprograms accounts do to mail formatting ...)
> my cpu manual ( IDT RC32334) talks about two watch registers
> CP0_IWATCH and CP0_DWATCH where it is required to just put desired
> VIRTUAL( bits 2--31) addresses to be watched , there is no mention
> of CP0_WATCHLO and CP0_WATCHHI .
>
> additionally i guees for userspace virtual watch register problem,
> the hardware takes care of all , i just need to specify my virual
> address this is what i understand from my manual.
>
> and one more problem i face when i try to debug a mysterious page
> fault problem, that i get my watch exception but after page fault
> ..hence I can't really debug , shouldn't the priority of watch
> exceptions should be higher than atleast instruction fetch
> exception.? or the scope of debugging by watch exception is
> limited by design.....
No, the watch exception is one of the lowest priority exceptions. In case
EXL/ERL are set it might even be defered making it the lowest priority
exception.
Ralf
|