- 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.

svn path=/trunk/; revision=33943
This commit is contained in:
Aleksey Bragin 2008-06-12 08:56:13 +00:00
parent 31bec7ebbf
commit b21dc84f01
2 changed files with 10 additions and 6 deletions

View file

@ -165,8 +165,10 @@ KdpEnterDebuggerException(IN PKTRAP_FRAME TrapFrame,
//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 @@ KdpCallGdb(IN PKTRAP_FRAME TrapFrame,
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;
}

View file

@ -1479,7 +1479,7 @@ KdbEnterDebuggerException(
{
if (!EnterConditionMet)
{
return kdDoNotHandleException;
return kdHandleException;
}
DbgPrint("Entered debugger on unexpected debug trap!\n");
}
@ -1493,7 +1493,7 @@ KdbEnterDebuggerException(
}
if (!EnterConditionMet)
{
return kdDoNotHandleException;
return kdHandleException;
}
DbgPrint("Entered debugger on embedded INT3 at 0x%04x:0x%08x.\n",