Author: ion
Date: Thu Nov 30 12:30:07 2006
New Revision: 24987
URL: http://svn.reactos.org/svn/reactos?rev=24987&view=rev
Log:
- Client IDs were OK, I incorrectly assumed they weren't due to the concidence they were equal to the thead/process handles. Actual bug was NtDebugContinue not accepting a valid status value. This is fixed now.
Modified:
trunk/reactos/ntoskrnl/dbgk/debug.c
Modified: trunk/reactos/ntoskrnl/dbgk/debug.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/dbgk/debug.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/dbgk/debug.c (original)
+++ trunk/reactos/ntoskrnl/dbgk/debug.c Thu Nov 30 12:30:07 2006
@@ -1517,7 +1517,8 @@
}
/* Make sure that the status is valid */
- if ((ContinueStatus != DBG_EXCEPTION_NOT_HANDLED) &&
+ if ((ContinueStatus != DBG_CONTINUE) &&
+ (ContinueStatus != DBG_EXCEPTION_NOT_HANDLED) &&
(ContinueStatus != DBG_REPLY_LATER) &&
(ContinueStatus != DBG_UNABLE_TO_PROVIDE_HANDLE) &&
(ContinueStatus != DBG_TERMINATE_THREAD) &&
Author: ion
Date: Thu Nov 30 07:52:22 2006
New Revision: 24984
URL: http://svn.reactos.org/svn/reactos?rev=24984&view=rev
Log:
- Fix a bug in NtWaitForDebugEvent.
- Dbgk kindaaaa works now, as a proof-of-concept more then anything else since some helper Mm routines are missing. Still have some bugs to fix, but connecting, attaching and waiting on events seems not to crash anymore (And returns partially valid data).
Modified:
trunk/reactos/ntoskrnl/dbgk/debug.c
Modified: trunk/reactos/ntoskrnl/dbgk/debug.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/dbgk/debug.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/dbgk/debug.c (original)
+++ trunk/reactos/ntoskrnl/dbgk/debug.c Thu Nov 30 07:52:22 2006
@@ -1868,8 +1868,6 @@
PreviousMode,
Alertable,
Timeout);
-
- /* Start the wait loop */
while (TRUE)
{
if (!NT_SUCCESS(Status) ||
@@ -1988,10 +1986,11 @@
DbgkpOpenHandles(&WaitStateChange, Process, Thread);
ObDereferenceObject(Process);
ObDereferenceObject(Thread);
- }
- }
-
- /* We're, dereference the object */
+ break;
+ }
+ }
+
+ /* We're done, dereference the object */
ObDereferenceObject(DebugObject);
/* Protect write with SEH */