Author: fireball
Date: Thu Jun 12 03:56:13 2008
New Revision: 33943
URL:
http://svn.reactos.org/svn/reactos?rev=33943&view=rev
Log:
- Prevent a misunderstanding: kdHandleException means the debugger did NOT handle the
exception. Fix the logic, and thus fix vectored exception handling which led to 2nd stage
hang in qemu.
- TODO: This ContinueType thing should be reworked into a better logic.
See issue #3344 for more details.
Modified:
trunk/reactos/ntoskrnl/kd/kdmain.c
trunk/reactos/ntoskrnl/kdbg/kdb.c
Modified: trunk/reactos/ntoskrnl/kd/kdmain.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/kdmain.c?rev=3…
==============================================================================
--- trunk/reactos/ntoskrnl/kd/kdmain.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kd/kdmain.c [iso-8859-1] Thu Jun 12 03:56:13 2008
@@ -165,8 +165,10 @@
//DPRINT1("Address: %p. Return: %d\n", EipOld, Return);
}
- /* Convert return to BOOLEAN */
- if (Return == kdDoNotHandleException) return FALSE;
+ /* Debugger didn't handle it, please handle! */
+ if (Return == kdHandleException) return FALSE;
+
+ /* Debugger handled it */
return TRUE;
}
@@ -194,8 +196,10 @@
TrapFrame);
}
- /* Convert return to BOOLEAN */
- if (Return == kdDoNotHandleException) return FALSE;
+ /* Debugger didn't handle it, please handle! */
+ if (Return == kdHandleException) return FALSE;
+
+ /* Debugger handled it */
return TRUE;
}
Modified: trunk/reactos/ntoskrnl/kdbg/kdb.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/kdb.c?rev=33…
==============================================================================
--- trunk/reactos/ntoskrnl/kdbg/kdb.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kdbg/kdb.c [iso-8859-1] Thu Jun 12 03:56:13 2008
@@ -1479,7 +1479,7 @@
{
if (!EnterConditionMet)
{
- return kdDoNotHandleException;
+ return kdHandleException;
}
DbgPrint("Entered debugger on unexpected debug trap!\n");
}
@@ -1493,7 +1493,7 @@
}
if (!EnterConditionMet)
{
- return kdDoNotHandleException;
+ return kdHandleException;
}
DbgPrint("Entered debugger on embedded INT3 at 0x%04x:0x%08x.\n",