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=33... ============================================================================== --- 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=339... ============================================================================== --- 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",