mirror of
https://github.com/reactos/reactos.git
synced 2025-07-15 21:34:02 +00:00
- Fix another typo in CommonDispatchException (with yet another critical flaw as a result). Sometimes, exceptions would incorrectly be detected as coming from user-mode even though CS was kernel mode. When creating the KTRAP_FRAME, the kernel would then add the Ring 3 RPL_MASK (3) (because it believed we're in usermode) to the kernel-mode CS, creating the invalid CS of 0xB, which would lead into a GPF during the iretd.
- Re-enable DebugPrint since this now works. svn path=/trunk/; revision=25976
This commit is contained in:
parent
a195100319
commit
c44e8d2c89
3 changed files with 3 additions and 2 deletions
|
@ -23,7 +23,6 @@ DebugPrint(IN PANSI_STRING DebugString,
|
|||
IN ULONG Level)
|
||||
{
|
||||
/* Call the INT2D Service */
|
||||
return STATUS_SUCCESS;
|
||||
return DebugService(BREAKPOINT_PRINT,
|
||||
DebugString->Buffer,
|
||||
DebugString->Length,
|
||||
|
|
|
@ -127,6 +127,7 @@ KdpEnterDebuggerException(IN PKTRAP_FRAME TrapFrame,
|
|||
|
||||
/* This we can handle: simply bump EIP */
|
||||
Context->Eip++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Get out of here if the Debugger isn't connected */
|
||||
|
|
|
@ -604,7 +604,7 @@ NoParams:
|
|||
|
||||
/* Set the record in ECX and check if this was V86 */
|
||||
mov ecx, esp
|
||||
test dword ptr [esp+KTRAP_FRAME_EFLAGS], EFLAGS_V86_MASK
|
||||
test dword ptr [ebp+KTRAP_FRAME_EFLAGS], EFLAGS_V86_MASK
|
||||
jz SetPreviousMode
|
||||
|
||||
/* Set V86 mode */
|
||||
|
@ -791,6 +791,7 @@ EnableInterrupts3:
|
|||
sti
|
||||
|
||||
PrepInt3:
|
||||
|
||||
/* Prepare the exception */
|
||||
mov esi, ecx
|
||||
mov edi, edx
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue