> > The only call to the ReadWriteDR2 function I found in the disassembler > > output is a read call, and the DR2 value is compared with 0xffb31146. > > Hope this helps. > > well, not really DR0..3 contain the linear address where you want to put > your > breakpoint... so there's no reason it's updated by the 0 fault, however > is DR2 set by hand before the call to the function > similary is DR7 set in the nearby (this is the register that > enables/disables > among other things, the use of the addresses stored in the DR0..3 regs)
I haven't noticed any access to DR7. The code looks like DR2 should be written at some point, but I haven't been able to find where. I think it would help if we could implement an exception handler for DR0..3 read/write accesses which would just store the value somewhere in memory and return it when the DR registers are read. Laurent Pinchart