The GDB KD stub now correctly references/dereferences ETHREAD objects

svn path=/trunk/; revision=4522
This commit is contained in:
KJK::Hyperion 2003-04-11 02:25:24 +00:00
parent 5c6df46d27
commit 22f750cd54

View file

@ -692,6 +692,9 @@ GspSetThread(PCHAR Request)
{
GspOutBuffer[0] = 'O';
GspOutBuffer[1] = 'K';
if(GspRunThread) ObDereferenceObject(GspRunThread);
GspRunThread = ThreadInfo;
}
else
@ -704,6 +707,9 @@ GspSetThread(PCHAR Request)
{
GspOutBuffer[0] = 'O';
GspOutBuffer[1] = 'K';
if(GspDbgThread) ObDereferenceObject(GspDbgThread);
GspDbgThread = ThreadInfo;
}
else
@ -779,6 +785,9 @@ GspQuery(PCHAR Request)
if (GspFindThread (ptr, &ThreadInfo))
{
PCHAR String = GspThreadStates[ThreadInfo->Tcb.State];
ObDereferenceObject(ThreadInfo);
GspMem2Hex (String, &GspOutBuffer[0], strlen (String), FALSE);
}
}
@ -840,6 +849,8 @@ GspQueryThreadStatus(PCHAR Request)
if (GspFindThread (ptr, &ThreadInfo))
{
ObDereferenceObject(ThreadInfo);
GspOutBuffer[0] = 'O';
GspOutBuffer[1] = 'K';
GspOutBuffer[2] = '\0';
@ -1306,6 +1317,9 @@ KdGdbStubInit(ULONG Phase)
GspInitialized = TRUE;
GspRunThread = PsGetCurrentThread();
ObReferenceObject(GspRunThread);
/* GspDbgThread = PsGetCurrentThread(); */
GspDbgThread = NULL;
GspEnumThread = NULL;