mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
ntoskrnl/Ke: setup stack segment selector in KeSetupsStackAndInitializeKernel, comment out decrement of Rip on int3 dispatch (needs further investigation), use CONTEXT_ALL flags when creating the CONTEXT from the trap frame in KeDispatchException
svn path=/branches/ros-amd64-bringup/; revision=39074
This commit is contained in:
@@ -49,6 +49,8 @@ _KiSetupStackAndInitializeKernel:
|
||||
mov rsi, rsp
|
||||
|
||||
/* Setup the new stack */
|
||||
mov ax, 0x18
|
||||
mov ss, ax
|
||||
mov rsp, r8
|
||||
sub rsp, 0x300 // FIXME
|
||||
|
||||
|
||||
@@ -107,14 +107,7 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
|
||||
KeGetCurrentPrcb()->KeExceptionDispatchCount++;
|
||||
|
||||
/* Set the context flags */
|
||||
Context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS;
|
||||
|
||||
/* Check if User Mode or if the debugger is enabled */
|
||||
if ((PreviousMode == UserMode) || (KdDebuggerEnabled))
|
||||
{
|
||||
/* Add the FPU Flag */
|
||||
Context.ContextFlags |= CONTEXT_FLOATING_POINT;
|
||||
}
|
||||
Context.ContextFlags = CONTEXT_ALL;
|
||||
|
||||
/* Get a Context */
|
||||
KeTrapFrameToContext(TrapFrame, ExceptionFrame, &Context);
|
||||
@@ -126,7 +119,8 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
|
||||
case STATUS_BREAKPOINT:
|
||||
|
||||
/* Decrement RIP by one */
|
||||
Context.Rip--;
|
||||
// FIXME: that doesn't work, why?
|
||||
// Context.Rip--;
|
||||
break;
|
||||
|
||||
/* Internal exception */
|
||||
|
||||
Reference in New Issue
Block a user