debug registers, write breakpoints, and x86

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Chris Friesen
Date: Friday, March 19, 2010 - 2:33 pm

Hi,

I'm running 2.6.27 on x86 (64-bit) and I have what appears to be a
memory trampler.  I'd like to use a write breakpoint on the address
being trampled to see who's doing it.

From what I understand, I'll need to set one of DR0-3 (let's use DR3) to
my address of interest, then set the L3, G3, RW3, and LEN3 fields in
DR7.  Then when the exception fires we'll handle it in do_debug().  Is
this right?

Given that I want this to be global and permanent, I'm a bit confused by
the code in __switch_to_xtra().  If any other task has TIF_DEBUG set
will this end up overwriting my debug register settings?  Is there any
way (other than modifying the code) to ensure that my settings are
permanent?

I'd appreciate any comments you might have.

Thanks,

Chris Friesen
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
debug registers, write breakpoints, and x86, Chris Friesen, (Fri Mar 19, 2:33 pm)