/* Delete the temporary breakpoint which was used to step over or into the instruction. */
KdbpDeleteBreakPoint(-1, BreakPoint);
+ TrapFrame->Eip--;
+
if (--KdbNumSingleSteps > 0)
{
if ((KdbSingleStepOver && !KdbpStepOverInstruction(TrapFrame->Eip)) ||
/* Clear dr6 status flags. */
TrapFrame->Dr6 &= ~0x0000e00f;
- /* Skip the current instruction */
- Context->Eip++;
+ if (!(KdbEnteredOnSingleStep && KdbSingleStepOver))
+ {
+ /* Skip the current instruction */
+ Context->Eip++;
+ }
}
return ContinueType;
p2 += 8;
KdbDebugState |= KD_DEBUG_KDNOECHO;
}
+ else if (!_strnicmp(p2, "FIRSTCHANCE", 11))
+ {
+ p2 += 11;
+ KdbpSetEnterCondition(-1, TRUE, KdbEnterAlways);
+ }
p1 = p2;
}