Author: tkreuzer
Date: Thu Aug 19 09:03:36 2010
New Revision: 48566
URL:
http://svn.reactos.org/svn/reactos?rev=48566&view=rev
Log:
[NTOSKRNL]
Fix handling of next instruction in kdbg.
Patch by Daniel Zimmermann, modified by Aleksey Bragin
See issue #4457 for more details.
Modified:
trunk/reactos/ntoskrnl/kdbg/kdb.c
Modified: trunk/reactos/ntoskrnl/kdbg/kdb.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/kdb.c?rev=48…
==============================================================================
--- trunk/reactos/ntoskrnl/kdbg/kdb.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kdbg/kdb.c [iso-8859-1] Thu Aug 19 09:03:36 2010
@@ -1413,6 +1413,8 @@
/* 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)) ||
@@ -1681,8 +1683,11 @@
/* Clear dr6 status flags. */
TrapFrame->Dr6 &= ~0x0000e00f;
- /* Skip the current instruction */
- Context->Eip++;
+ if (!KdbEnteredOnSingleStep && KdbSingleStepOver)
+ {
+ /* Skip the current instruction */
+ Context->Eip++;
+ }
}
return ContinueType;