- Use correct trapframe during set/get context. Thanks to blight for
noticing the bug.
Modified: trunk/reactos/ntoskrnl/ps/debug.c
_____
Modified: trunk/reactos/ntoskrnl/ps/debug.c
--- trunk/reactos/ntoskrnl/ps/debug.c 2005-11-02 23:47:58 UTC (rev
18962)
+++ trunk/reactos/ntoskrnl/ps/debug.c 2005-11-02 23:57:38 UTC (rev
18963)
@@ -44,23 +44,30 @@
PKEVENT Event;
PCONTEXT Context;
KPROCESSOR_MODE Mode;
+ PETHREAD Thread;
+ PKTRAP_FRAME TrapFrame;
/* Get the Context Structure */
GetSetContext = CONTAINING_RECORD(Apc, GET_SET_CTX_CONTEXT, Apc);
Context = &GetSetContext->Context;
Event = &GetSetContext->Event;
Mode = GetSetContext->Mode;
+ Thread = SystemArgument2;
+ /* Get trap frame */
+ TrapFrame = (PKTRAP_FRAME)((ULONG_PTR)Thread->Tcb.InitialStack -
+ sizeof(KTRAP_FRAME) -
sizeof(FX_SAVE_AREA));
+
/* Check if it's a set or get */
- if (SystemArgument1) {
-
+ if (SystemArgument1)
+ {
/* Get the Context */
- KeTrapFrameToContext(KeGetCurrentThread()->TrapFrame, NULL,
Context);
-
- } else {
-
+ KeTrapFrameToContext(TrapFrame, NULL, Context);
+ }
+ else
+ {
/* Set the Context */
- KeContextToTrapFrame(Context, NULL,
KeGetCurrentThread()->TrapFrame, Mode);
+ KeContextToTrapFrame(Context, NULL, TrapFrame, Mode);
}
/* Notify the Native API that we are done */
Show replies by date