- 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 */