mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
- 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:
parent
31bec7ebbf
commit
b21dc84f01
2 changed files with 10 additions and 6 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in a new issue