Author: ion Date: Sun Feb 18 22:30:33 2007 New Revision: 25836
URL: http://svn.reactos.org/svn/reactos?rev=25836&view=rev Log: - Fix KiDebugService to load EDX from KTRAP_FRAME_EDX, not KTRAP_FRAME_EAX!. - Fix CommonDispatchException to check for the argument count in ECX, not EAX. Previously we were ignoring parameter counts and never filling out exception records! - Fix DebugPrint to be the same in user-mode and kernel-mode by using DebugService. This now works because the bugs above were fixed.
Modified: branches/alex-kd-branch/reactos/dll/ntdll/dbg/dbgui.c branches/alex-kd-branch/reactos/lib/rtl/debug.c branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/trap.s branches/alex-kd-branch/reactos/ntoskrnl/rtl/misc.c
Modified: branches/alex-kd-branch/reactos/dll/ntdll/dbg/dbgui.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/dll/ntdll... ============================================================================== --- branches/alex-kd-branch/reactos/dll/ntdll/dbg/dbgui.c (original) +++ branches/alex-kd-branch/reactos/dll/ntdll/dbg/dbgui.c Sun Feb 18 22:30:33 2007 @@ -13,28 +13,6 @@ #include <debug.h>
/* FUNCTIONS *****************************************************************/ - -NTSTATUS -NTAPI -DebugService(IN ULONG Service, - IN PVOID Buffer, - IN ULONG Length, - IN PVOID Argument1, - IN PVOID Argument2); - -NTSTATUS -NTAPI -DebugPrint(IN PANSI_STRING DebugString, - IN ULONG ComponentId, - IN ULONG Level) -{ - /* Call the INT2D Service */ - return DebugService(BREAKPOINT_PRINT, - DebugString->Buffer, - DebugString->Length, - UlongToPtr(ComponentId), - UlongToPtr(Level)); -}
/* * @implemented
Modified: branches/alex-kd-branch/reactos/lib/rtl/debug.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/lib/rtl/d... ============================================================================== --- branches/alex-kd-branch/reactos/lib/rtl/debug.c (original) +++ branches/alex-kd-branch/reactos/lib/rtl/debug.c Sun Feb 18 22:30:33 2007 @@ -16,27 +16,21 @@
/* PRIVATE FUNCTIONS ********************************************************/
-#if 0 NTSTATUS NTAPI DebugPrint(IN PANSI_STRING DebugString, IN ULONG ComponentId, IN ULONG Level) { + return STATUS_SUCCESS; + /* Call the INT2D Service */ return DebugService(BREAKPOINT_PRINT, DebugString->Buffer, DebugString->Length, UlongToPtr(ComponentId), - UlongToPtr(Level)); -} -#else -NTSTATUS -NTAPI -DebugPrint(IN PANSI_STRING DebugString, - IN ULONG ComponentId, - IN ULONG Level); -#endif + UlongToPtr(Level)); +}
NTSTATUS NTAPI @@ -282,7 +276,7 @@ Input.Buffer = Response;
/* Setup the output string */ - Output.Length = strlen (Prompt); + Output.Length = strlen(Prompt); Output.Buffer = Prompt;
/* Call the system service */
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/trap.s URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/trap.s (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/ke/i386/trap.s Sun Feb 18 22:30:33 2007 @@ -471,7 +471,7 @@ /* Call debug service dispatcher */ mov eax, [ebp+KTRAP_FRAME_EAX] mov ecx, [ebp+KTRAP_FRAME_ECX] - mov edx, [ebp+KTRAP_FRAME_EAX] + mov edx, [ebp+KTRAP_FRAME_EDX]
/* Jump to INT3 handler */ jmp PrepareInt3 @@ -591,7 +591,7 @@ mov [esp+EXCEPTION_RECORD_NUMBER_PARAMETERS], ecx
/* Check parameter count */ - cmp eax, 0 + cmp ecx, 0 jz NoParams
/* Get information */ @@ -613,9 +613,11 @@
SetPreviousMode:
- /* Calculate the previous mode */ + /* Get the caller's CS */ mov eax, [ebp+KTRAP_FRAME_CS] + MaskMode: + /* Check if it was user-mode or kernel-mode */ and eax, MODE_MASK
/* Dispatch the exception */ @@ -797,8 +799,8 @@ /* Setup EIP, NTSTATUS and parameter count, then dispatch */ mov ebx, [ebp+KTRAP_FRAME_EIP] dec ebx + mov ecx, 3 mov eax, STATUS_BREAKPOINT - mov ecx, 3 call _CommonDispatchException
V86Int3:
Modified: branches/alex-kd-branch/reactos/ntoskrnl/rtl/misc.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/rtl/misc.c (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/rtl/misc.c Sun Feb 18 22:30:33 2007 @@ -22,18 +22,6 @@ extern ULONG NtOSCSDVersion;
/* FUNCTIONS *****************************************************************/ - -NTSTATUS -NTAPI -DebugPrint(IN PANSI_STRING DebugString, - IN ULONG ComponentId, - IN ULONG Level) -{ - /* Temporary hack */ - //KdpPrintString(DebugString->Buffer, DebugString->Length); - //HalDisplayString((PCHAR)DebugString->Buffer); - return STATUS_SUCCESS; -}
/* * @implemented