Completely disable the debug register assertions in the trap exit code for KDBG as it sets them improperly. These checks should not have been added for KDBG to begin with and would have made any usage of address breakpoints inside KDBG end up in a trap exit breakpoint. Whoever knows KDBG better than I do please investigate. However, enable the DR7 debug check for KD as it handles the debug registers just fine. The likelihood of loading a driver that modifies a debug register (which would be the only other thing triggering this) is pretty slim.

svn path=/trunk/; revision=69244
This commit is contained in:
Stefan Ginsberg 2015-09-15 17:55:14 +00:00
parent ad06f5118a
commit d2608984c9

View file

@ -153,6 +153,8 @@ KiExitTrapDebugChecks(IN PKTRAP_FRAME TrapFrame,
__debugbreak();
}
/* FIXME: KDBG messes around with these improperly */
#if !defined(KDBG)
/* Check DR values */
if (KiUserTrap(TrapFrame))
{
@ -175,8 +177,9 @@ KiExitTrapDebugChecks(IN PKTRAP_FRAME TrapFrame,
CheckDr(1, Prcb->ProcessorState.SpecialRegisters.KernelDr1);
CheckDr(2, Prcb->ProcessorState.SpecialRegisters.KernelDr2);
CheckDr(3, Prcb->ProcessorState.SpecialRegisters.KernelDr3);
//CheckDr(7, Prcb->ProcessorState.SpecialRegisters.KernelDr7);
CheckDr(7, Prcb->ProcessorState.SpecialRegisters.KernelDr7);
}
#endif
StopChecking = FALSE;
}