Bug in previous commit...these should've been deleted

svn path=/trunk/; revision=14761
This commit is contained in:
Alex Ionescu
2005-04-23 06:43:39 +00:00
parent 665e646216
commit 9732c7adea
5 changed files with 0 additions and 748 deletions
-58
View File
@@ -1,58 +0,0 @@
/* $Id:$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/dbg/dbgctrl.c
* PURPOSE: System debug control
*
* PROGRAMMERS: No programmer listed.
*/
/* INCLUDES *****************************************************************/
#include <ntoskrnl.h>
#define NDEBUG
#include <internal/debug.h>
/* FUNCTIONS *****************************************************************/
/*
* @unimplemented
*/
NTSTATUS
STDCALL
DbgLoadImageSymbols(
IN PUNICODE_STRING Name,
IN ULONG Base,
IN ULONG Unknown3
)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS STDCALL
NtSystemDebugControl(DEBUG_CONTROL_CODE ControlCode,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength,
PULONG ReturnLength)
{
switch (ControlCode) {
case DebugGetTraceInformation:
case DebugSetInternalBreakpoint:
case DebugSetSpecialCall:
case DebugClearSpecialCalls:
case DebugQuerySpecialCalls:
case DebugDbgBreakPoint:
break;
case DebugDbgLoadSymbols:
KDB_LOADUSERMODULE_HOOK((PLDR_MODULE) InputBuffer);
break;
default:
break;
}
return STATUS_SUCCESS;
}
-268
View File
@@ -1,268 +0,0 @@
/* $Id:$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/dbg/errinfo.c
* PURPOSE: Print information descriptions of error messages
*
* PROGRAMMERS: No programmer listed.
*/
/* INCLUDES ******************************************************************/
#include <ntoskrnl.h>
#include <internal/debug.h>
/* GLOBALS *******************************************************************/
static PCHAR SeverityCodes[] = {"SUC", "INF", "ERR", "WRN"};
static struct _FACLIST
{
ULONG Code;
PCHAR Name;
} FacList[] =
{
{0, "KERNEL"},
{0, NULL}
};
static struct _ERRLIST
{
NTSTATUS Code;
PCHAR Name;
PCHAR Text;
} ErrList[] =
{
{STATUS_SUCCESS, "SUCCESS", NULL},
{STATUS_INSUFFICIENT_RESOURCES, "INSUFFICIENT_RESOURCES", NULL},
{STATUS_OBJECT_NAME_EXISTS, "OBJECT_NAME_EXISTS", NULL},
{STATUS_OBJECT_NAME_COLLISION, "OBJECT_NAME_COLLISION", NULL},
{STATUS_CTL_FILE_NOT_SUPPORTED, "CTL_FILE_NOT_SUPPORTED", NULL},
{STATUS_PORT_ALREADY_SET, "PORT_ALREADY_SET", NULL},
{STATUS_SECTION_NOT_IMAGE, "SECTION_NOT_IMAGE", NULL},
{STATUS_BAD_WORKING_SET_LIMIT, "BAD_WORKING_SET_LIMIT", NULL},
{STATUS_INCOMPATIBLE_FILE_MAP, "INCOMPATIBLE_FILE_MAP", NULL},
{STATUS_HANDLE_NOT_WAITABLE, "HANDLE_NOT_WAITABLE", NULL},
{STATUS_PORT_DISCONNECTED, "PORT_DISCONNECTED", NULL},
{STATUS_NOT_LOCKED, "NOT_LOCKED", NULL},
{STATUS_NOT_MAPPED_VIEW, "NOT_MAPPED_VIEW", NULL},
{STATUS_UNABLE_TO_FREE_VM, "UNABLE_TO_FREE_VM", NULL},
{STATUS_UNABLE_TO_DELETE_SECTION, "UNABLE_TO_DELETE_SECTION", NULL},
{STATUS_MORE_PROCESSING_REQUIRED, "MORE_PROCESSING_REQUIRED", NULL},
{STATUS_INVALID_CID, "INVALID_CID", NULL},
{STATUS_BAD_INITIAL_STACK, "BAD_INITIAL_STACK", NULL},
{STATUS_INVALID_VOLUME_LABEL, "INVALID_VOLUME_LABEL", NULL},
{STATUS_SECTION_NOT_EXTENDED, "SECTION_NOT_EXTENDED", NULL},
{STATUS_NOT_MAPPED_DATA, "NOT_MAPPED_DATA", NULL},
{STATUS_INFO_LENGTH_MISMATCH, "INFO_LENGTH_MISMATCH", NULL},
{STATUS_INVALID_INFO_CLASS, "INVALID_INFO_CLASS", NULL},
{STATUS_SUSPEND_COUNT_EXCEEDED, "SUSPEND_COUNT_EXCEEDED", NULL},
{STATUS_NOTIFY_ENUM_DIR, "NOTIFY_ENUM_DIR", NULL},
{STATUS_REGISTRY_RECOVERED, "REGISTRY_RECOVERED", NULL},
{STATUS_REGISTRY_IO_FAILED, "REGISTRY_IO_FAILED", NULL},
{STATUS_KEY_DELETED, "KEY_DELETED", NULL},
{STATUS_NO_LOG_SPACE, "NO_LOG_SPACE", NULL},
{STATUS_KEY_HAS_CHILDREN, "KEY_HAS_CHILDREN", NULL},
{STATUS_CHILD_MUST_BE_VOLATILE, "CHILD_MUST_BE_VOLATILE", NULL},
{STATUS_REGISTRY_CORRUPT, "REGISTRY_CORRUPT", NULL},
{STATUS_DLL_NOT_FOUND, "DLL_NOT_FOUND", NULL},
{STATUS_DLL_INIT_FAILED, "DLL_INIT_FAILED", NULL},
{STATUS_ORDINAL_NOT_FOUND, "ORDINAL_NOT_FOUND", NULL},
{STATUS_ENTRYPOINT_NOT_FOUND, "ENTRYPOINT_NOT_FOUND", NULL},
{STATUS_MORE_ENTRIES, "MORE_ENTRIES", NULL},
{STATUS_BUFFER_OVERFLOW, "BUFFER_OVERFLOW", NULL},
{STATUS_NO_MORE_FILES, "NO_MORE_FILES", NULL},
{STATUS_NO_INHERITANCE, "NO_INHERITANCE", NULL},
{STATUS_NO_MORE_EAS, "NO_MORE_EAS", NULL},
{STATUS_NO_MORE_ENTRIES, "NO_MORE_ENTRIES", NULL},
{STATUS_GUIDS_EXHAUSTED, "GUIDS_EXHAUSTED", NULL},
{STATUS_AGENTS_EXHAUSTED, "AGENTS_EXHAUSTED", NULL},
{STATUS_UNSUCCESSFUL, "UNSUCCESSFUL", NULL},
{STATUS_NOT_IMPLEMENTED, "NOT_IMPLEMENTED", NULL},
{STATUS_ILLEGAL_FUNCTION, "ILLEGAL_FUNCTION", NULL},
{STATUS_PAGEFILE_QUOTA, "PAGEFILE_QUOTA", NULL},
{STATUS_COMMITMENT_LIMIT, "COMMITMENT_LIMIT", NULL},
{STATUS_SECTION_TOO_BIG, "SECTION_TOO_BIG", NULL},
{RPC_NT_SS_IN_NULL_CONTEXT, "RPC_NT_SS_IN_NULL_CONTEXT", NULL},
{RPC_NT_INVALID_BINDING, "RPC_NT_INVALID_BINDING", NULL},
{STATUS_OBJECT_FILE_MISMATCH, "OBJECT_FILE_MISMATCH", NULL},
{STATUS_FILE_CLOSED, "FILE_CLOSED", NULL},
{STATUS_INVALID_PORT_HANDLE, "INVALID_PORT_HANDLE", NULL},
{STATUS_NOT_COMMITTED, "NOT_COMMITTED", NULL},
{STATUS_INVALID_PARAMETER, "INVALID_PARAMETER", NULL},
{STATUS_INVALID_PARAMETER_1, "INVALID_PARAMETER_1", NULL},
{STATUS_INVALID_PARAMETER_2, "INVALID_PARAMETER_2", NULL},
{STATUS_INVALID_PARAMETER_3, "INVALID_PARAMETER_3", NULL},
{STATUS_INVALID_PARAMETER_4, "INVALID_PARAMETER_4", NULL},
{STATUS_INVALID_PARAMETER_5, "INVALID_PARAMETER_5", NULL},
{STATUS_INVALID_PARAMETER_6, "INVALID_PARAMETER_6", NULL},
{STATUS_INVALID_PARAMETER_7, "INVALID_PARAMETER_7", NULL},
{STATUS_INVALID_PARAMETER_8, "INVALID_PARAMETER_8", NULL},
{STATUS_INVALID_PARAMETER_9, "INVALID_PARAMETER_9", NULL},
{STATUS_INVALID_PARAMETER_10, "INVALID_PARAMETER_10", NULL},
{STATUS_INVALID_PARAMETER_11, "INVALID_PARAMETER_11", NULL},
{STATUS_INVALID_PARAMETER_12, "INVALID_PARAMETER_12", NULL},
{STATUS_INVALID_PARAMETER_MAX, "INVALID_PARAMETER_MAX", NULL},
{STATUS_INVALID_PAGE_PROTECTION, "INVALID_PAGE_PROTECTION", NULL},
{STATUS_RESOURCE_DATA_NOT_FOUND, "RESOURCE_DATA_NOT_FOUND", NULL},
{STATUS_RESOURCE_TYPE_NOT_FOUND, "RESOURCE_TYPE_NOT_FOUND", NULL},
{STATUS_RESOURCE_NAME_NOT_FOUND, "RESOURCE_NAME_NOT_FOUND", NULL},
{STATUS_RESOURCE_LANG_NOT_FOUND, "RESOURCE_LANG_NOT_FOUND", NULL},
{STATUS_NO_SUCH_DEVICE, "NO_SUCH_DEVICE", NULL},
{STATUS_NO_SUCH_FILE, "NO_SUCH_FILE", NULL},
{STATUS_INVALID_DEVICE_REQUEST, "INVALID_DEVICE_REQUEST", NULL},
{STATUS_END_OF_FILE, "END_OF_FILE", NULL},
{STATUS_FILE_FORCED_CLOSED, "FILE_FORCED_CLOSED", NULL},
{STATUS_WRONG_VOLUME, "WRONG_VOLUME", NULL},
{STATUS_NO_MEDIA, "NO_MEDIA", NULL},
{STATUS_NO_MEDIA_IN_DEVICE, "NO_MEDIA_IN_DEVICE", NULL},
{STATUS_NONEXISTENT_SECTOR, "NONEXISTENT_SECTOR", NULL},
{STATUS_WORKING_SET_QUOTA, "WORKING_SET_QUOTA", NULL},
{STATUS_CONFLICTING_ADDRESS, "CONFLICTING_ADDRESS", NULL},
{STATUS_INVALID_SYSTEM_SERVICE, "INVALID_SYSTEM_SERVICE", NULL},
{STATUS_THREAD_IS_TERMINATING, "THREAD_IS_TERMINATING", NULL},
{STATUS_PROCESS_IS_TERMINATING, "PROCESS_IS_TERMINATING", NULL},
{STATUS_INVALID_LOCK_SEQUENCE, "INVALID_LOCK_SEQUENCE", NULL},
{STATUS_INVALID_VIEW_SIZE, "INVALID_VIEW_SIZE", NULL},
{STATUS_ALREADY_COMMITTED, "ALREADY_COMMITTED", NULL},
{STATUS_ACCESS_DENIED, "ACCESS_DENIED", NULL},
{STATUS_FILE_IS_A_DIRECTORY, "FILE_IS_A_DIRECTORY", NULL},
{STATUS_CANNOT_DELETE, "CANNOT_DELETE", NULL},
{STATUS_INVALID_COMPUTER_NAME, "INVALID_COMPUTER_NAME", NULL},
{STATUS_FILE_DELETED, "FILE_DELETED", NULL},
{STATUS_DELETE_PENDING, "DELETE_PENDING", NULL},
{STATUS_PORT_CONNECTION_REFUSED, "PORT_CONNECTION_REFUSED", NULL},
{STATUS_NO_SUCH_PRIVILEGE, "NO_SUCH_PRIVILEGE", NULL},
{STATUS_PRIVILEGE_NOT_HELD, "PRIVILEGE_NOT_HELD", NULL},
{STATUS_CANNOT_IMPERSONATE, "CANNOT_IMPERSONATE", NULL},
{STATUS_LOGON_FAILURE, "LOGON_FAILURE", NULL},
{STATUS_ACCOUNT_RESTRICTION, "ACCOUNT_RESTRICTION", NULL},
{STATUS_INVALID_LOGON_HOURS, "INVALID_LOGON_HOURS", NULL},
{STATUS_INVALID_WORKSTATION, "INVALID_WORKSTATION", NULL},
{STATUS_BUFFER_TOO_SMALL, "BUFFER_TOO_SMALL", NULL},
{STATUS_UNABLE_TO_DECOMMIT_VM, "UNABLE_TO_DECOMMIT_VM", NULL},
{STATUS_DISK_CORRUPT_ERROR, "DISK_CORRUPT_ERROR", NULL},
{STATUS_OBJECT_NAME_INVALID, "OBJECT_NAME_INVALID", NULL},
{STATUS_OBJECT_NAME_NOT_FOUND, "OBJECT_NAME_NOT_FOUND", NULL},
{STATUS_OBJECT_PATH_INVALID, "OBJECT_PATH_INVALID", NULL},
{STATUS_OBJECT_PATH_NOT_FOUND, "OBJECT_PATH_NOT_FOUND", NULL},
{STATUS_DFS_EXIT_PATH_FOUND, "DFS_EXIT_PATH_FOUND", NULL},
{STATUS_OBJECT_PATH_SYNTAX_BAD, "OBJECT_PATH_SYNTAX_BAD", NULL},
{STATUS_DATA_OVERRUN, "DATA_OVERRUN", NULL},
{STATUS_DATA_LATE_ERROR, "DATA_LATE_ERROR", NULL},
{STATUS_DATA_ERROR, "DATA_ERROR", NULL},
{STATUS_CRC_ERROR, "CRC_ERROR", NULL},
{STATUS_SHARING_VIOLATION, "SHARING_VIOLATION", NULL},
{STATUS_QUOTA_EXCEEDED, "QUOTA_EXCEEDED", NULL},
{STATUS_MUTANT_NOT_OWNED, "MUTANT_NOT_OWNED", NULL},
{STATUS_SEMAPHORE_LIMIT_EXCEEDED, "SEMAPHORE_LIMIT_EXCEEDED", NULL},
{STATUS_DISK_FULL, "DISK_FULL", NULL},
{STATUS_LOCK_NOT_GRANTED, "LOCK_NOT_GRANTED", NULL},
{STATUS_DEVICE_NOT_READY, "DEVICE_NOT_READY", NULL},
{STATUS_IO_TIMEOUT, "IO_TIMEOUT", NULL},
{STATUS_MEDIA_WRITE_PROTECTED, "MEDIA_WRITE_PROTECTED", NULL},
{STATUS_NO_MEDIA_IN_DRIVE, "NO_MEDIA_IN_DRIVE", NULL},
{STATUS_VERIFY_REQUIRED, "VERIFY_REQUIRED", NULL},
{STATUS_UNRECOGNIZED_MEDIA, "UNRECOGNIZED_MEDIA", NULL},
{STATUS_UNRECOGNIZED_VOLUME, "UNRECOGNIZED_VOLUME", NULL},
{STATUS_FS_DRIVER_REQUIRED, "FS_DRIVER_REQUIRED", NULL},
{STATUS_NOT_SUPPORTED, "NOT_SUPPORTED", NULL},
{STATUS_DISK_OPERATION_FAILED, "DISK_OPERATION_FAILED", NULL},
{STATUS_FS_QUERY_REQUIRED, "FS_QUERY_REQUIRED", NULL},
{0, NULL, NULL}
};
/* FUNCTIONS *****************************************************************/
VOID
DbgGetErrorText(NTSTATUS ErrorCode, PUNICODE_STRING ErrorText, ULONG Flags)
{
int i;
char TempBuf[255], NumBuf[32];
ANSI_STRING AnsiString;
TempBuf[0] = '\0';
if (Flags & DBG_GET_SHOW_FACILITY)
{
if (NT_CUSTOMER(ErrorCode))
{
_snprintf(TempBuf, sizeof(TempBuf)-1,
"%%CUST-%s-",
SeverityCodes[NT_SEVERITY(ErrorCode)]);
TempBuf[sizeof(TempBuf)-1] = '\0';
}
else
{
for (i = 0; FacList[i].Name != NULL; i++)
{
if (FacList[i].Code == (ULONG) NT_FACILITY(ErrorCode))
{
break;
}
}
if (FacList[i].Name != NULL)
{
_snprintf(TempBuf, sizeof(TempBuf)-1, "%%%s-%s-",
FacList[i].Name,
SeverityCodes[NT_SEVERITY(ErrorCode)]);
TempBuf[sizeof(TempBuf)-1] = '\0';
}
else
{
_snprintf(TempBuf, sizeof(TempBuf)-1, "%%UNKNOWN-%s-",
SeverityCodes[NT_SEVERITY(ErrorCode)]);
TempBuf[sizeof(TempBuf)-1] = '\0';
}
}
}
for (i = 0; ErrList[i].Name != NULL; i++)
{
if (ErrorCode == ErrList[i].Code)
{
break;
}
}
if (ErrList[i].Name != NULL)
{
if (Flags & DBG_GET_SHOW_FACILITY)
{
strcat(TempBuf, ErrList[i].Name);
strcat(TempBuf, " ");
}
if (ErrList[i].Text != NULL)
{
strcat(TempBuf, ErrList[i].Text);
}
else
{
strcat(TempBuf, ErrList[i].Name);
}
}
else
{
if (Flags & DBG_GET_SHOW_FACILITY)
{
_snprintf(NumBuf, sizeof(NumBuf)-1, "%08lx", ErrorCode);
NumBuf[sizeof(NumBuf)-1] = '\0';
strcat(TempBuf, NumBuf);
strcat(TempBuf, " ");
}
sprintf(NumBuf, "Unknown Message #%08lx", ErrorCode);
strcat(TempBuf, NumBuf);
}
RtlInitAnsiString(&AnsiString, TempBuf);
RtlAnsiStringToUnicodeString(ErrorText, &AnsiString, TRUE);
}
VOID
DbgPrintErrorMessage(NTSTATUS ErrorCode)
{
UNICODE_STRING ErrorText;
DbgGetErrorText(ErrorCode, &ErrorText, 0xf);
DbgPrint("%wZ\n", &ErrorText);
RtlFreeUnicodeString(&ErrorText);
}
-198
View File
@@ -1,198 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/dbg/print.c
* PURPOSE: Debug output
*
* PROGRAMMERS: Eric Kohl ([email protected])
*/
/* INCLUDES *****************************************************************/
#include <ntoskrnl.h>
#include <internal/debug.h>
/* FUNCTIONS ****************************************************************/
#if 0
ULONG DbgService (ULONG Service, PVOID Context1, PVOID Context2);
__asm__ ("\n\t.global _DbgService\n\t"
"_DbgService:\n\t"
"mov 4(%esp), %eax\n\t"
"mov 8(%esp), %ecx\n\t"
"mov 12(%esp), %edx\n\t"
"int $0x2D\n\t"
"ret\n\t");
#endif
/*
* Note: DON'T CHANGE THIS FUNCTION!!!
* DON'T CALL HalDisplayString OR SOMETING ELSE!!!
* You'll only break the serial/bochs debugging feature!!!
*/
/*
* @implemented
*/
ULONG
DbgPrint(PCH Format, ...)
{
ANSI_STRING DebugString;
CHAR Buffer[1024];
va_list ap;
#ifdef SERIALIZE_DBGPRINT
# define MESSAGETABLE_SIZE 16
LONG MyTableIndex;
static LONG Lock = 0;
static LONG TableWriteIndex = 0, TableReadIndex = 0;
static CHAR MessageTable[MESSAGETABLE_SIZE][sizeof(Buffer)] = { { '\0' } };
#endif /* SERIALIZE_DBGPRINT */
/* init ansi string */
DebugString.Buffer = Buffer;
DebugString.MaximumLength = sizeof(Buffer);
va_start (ap, Format);
DebugString.Length = _vsnprintf (Buffer, sizeof( Buffer ), Format, ap);
va_end (ap);
#ifdef SERIALIZE_DBGPRINT
/* check if we are already running */
if (InterlockedCompareExchange(&Lock, 1, 0) == 1)
{
MyTableIndex = InterlockedIncrement(&TableWriteIndex) - 1;
InterlockedCompareExchange(&TableWriteIndex, 0, MESSAGETABLE_SIZE);
MyTableIndex %= MESSAGETABLE_SIZE;
if (MessageTable[MyTableIndex][0] != '\0') /* table is full */
{
DebugString.Buffer = "CRITICAL ERROR: DbgPrint Table is FULL!";
DebugString.Length = 39;
KdpPrintString(&DebugString);
for (;;);
}
else
{
/*DebugString.Buffer = "µµµ";
DebugString.Length = 3;
KdpPrintString(&DebugString);*/
memcpy(MessageTable[MyTableIndex], DebugString.Buffer, DebugString.Length);
MessageTable[MyTableIndex][DebugString.Length] = '\0';
}
}
else
{
#endif /* SERIALIZE_DBGPRINT */
KdpPrintString (&DebugString);
#ifdef SERIALIZE_DBGPRINT
MyTableIndex = TableReadIndex;
while (MessageTable[MyTableIndex][0] != '\0')
{
/*DebugString.Buffer = "$$$";
DebugString.Length = 3;
KdpPrintString(&DebugString);*/
DebugString.Buffer = MessageTable[MyTableIndex];
DebugString.Length = strlen(DebugString.Buffer);
DebugString.MaximumLength = DebugString.Length + 1;
KdpPrintString(&DebugString);
MessageTable[MyTableIndex][0] = '\0';
MyTableIndex = InterlockedIncrement(&TableReadIndex);
InterlockedCompareExchange(&TableReadIndex, 0, MESSAGETABLE_SIZE);
MyTableIndex %= MESSAGETABLE_SIZE;
}
InterlockedDecrement(&Lock);
}
# undef MESSAGETABLE_SIZE
#endif /* SERIALIZE_DBGPRINT */
return (ULONG)DebugString.Length;
}
/*
* @unimplemented
*/
ULONG
__cdecl
DbgPrintEx(
IN ULONG ComponentId,
IN ULONG Level,
IN PCH Format,
...
)
{
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
ULONG
__cdecl
DbgPrintReturnControlC(
PCH Format,
...
)
{
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
VOID STDCALL
DbgPrompt (PCH OutputString,
PCH InputString,
USHORT InputSize)
{
ANSI_STRING Output;
ANSI_STRING Input;
Input.Length = 0;
Input.MaximumLength = InputSize;
Input.Buffer = InputString;
Output.Length = strlen (OutputString);
Output.MaximumLength = Output.Length + 1;
Output.Buffer = OutputString;
/* FIXME: Not implemented yet! */
// KdpPromptString (&Output,
// &Input);
}
/*
* @unimplemented
*/
NTSTATUS
STDCALL
DbgQueryDebugFilterState(
IN ULONG ComponentId,
IN ULONG Level
)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/*
* @unimplemented
*/
NTSTATUS
STDCALL
DbgSetDebugFilterState(
IN ULONG ComponentId,
IN ULONG Level,
IN BOOLEAN State
)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */
-134
View File
@@ -1,134 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/dbg/rdebug.c
* PURPOSE: Runtime debugging support
*
* PROGRAMMERS: Casper S. Hornstrup ([email protected])
*/
/* INCLUDES *****************************************************************/
#include <ntoskrnl.h>
#define NDEBUG
#include <internal/debug.h>
/* GLOBALS ******************************************************************/
typedef struct _RDEBUG_ENTRY {
LIST_ENTRY ListEntry;
CHAR Filename[MAX_PATH];
} RDEBUG_ENTRY, *PRDEBUG_ENTRY;
LIST_ENTRY RDebugListHead;
BOOLEAN RDebugInitialized = FALSE;
/* FUNCTIONS ****************************************************************/
PRDEBUG_ENTRY
DbgpFind(PCH Filename)
{
PLIST_ENTRY Current;
PRDEBUG_ENTRY Entry;
Current = RDebugListHead.Flink;
while (Current != &RDebugListHead)
{
Entry = CONTAINING_RECORD(Current, RDEBUG_ENTRY, ListEntry);
if (strcmp(Filename, Entry->Filename) == 0)
{
return Entry;
}
Current = Current->Flink;
}
return(NULL);
}
VOID INIT_FUNCTION
DbgRDebugInit(VOID)
{
if (RDebugInitialized)
return;
InitializeListHead(&RDebugListHead);
RDebugInitialized = TRUE;
}
VOID
DbgShowFiles(VOID)
{
PLIST_ENTRY Current;
PRDEBUG_ENTRY Entry;
ULONG Count;
if (!RDebugInitialized)
return;
Count = 0;
Current = RDebugListHead.Flink;
while (Current != &RDebugListHead)
{
Entry = CONTAINING_RECORD(Current, RDEBUG_ENTRY, ListEntry);
DbgPrint(" %s\n", Entry->Filename);
Count++;
Current = Current->Flink;
}
if (Count == 1)
{
DbgPrint(" 1 file listed\n");
}
else
{
DbgPrint(" %d files listed\n", Count);
}
}
VOID
DbgEnableFile(PCH Filename)
{
PRDEBUG_ENTRY Entry;
if (!RDebugInitialized)
return;
if (!DbgpFind(Filename))
{
Entry = ExAllocatePool(NonPagedPool, sizeof(RDEBUG_ENTRY));
ASSERT(Entry);
RtlMoveMemory(Entry->Filename, Filename, strlen(Filename) + 1);
InsertTailList(&RDebugListHead, &Entry->ListEntry);
}
}
VOID
DbgDisableFile(PCH Filename)
{
PRDEBUG_ENTRY Entry;
if (!RDebugInitialized)
return;
Entry = DbgpFind(Filename);
if (Entry)
{
RemoveEntryList(&Entry->ListEntry);
}
}
BOOLEAN
DbgShouldPrint(PCH Filename)
{
if (!RDebugInitialized)
return FALSE;
return(DbgpFind(Filename) != NULL);
}
/* EOF */
-90
View File
@@ -1,90 +0,0 @@
/* $Id:$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/dbg/user.c
* PURPOSE: User mode debugging
*
* PROGRAMMERS: David Welch ([email protected])
*/
/* INCLUDES ******************************************************************/
#include <ntoskrnl.h>
#include <internal/debug.h>
/* FUNCTIONS *****************************************************************/
VOID
DbgkCreateThread(PVOID StartAddress)
{
LPC_DBG_MESSAGE Message;
LPC_DBG_MESSAGE Reply;
NTSTATUS Status;
if (PsGetCurrentThread()->ThreadsProcess->DebugPort == NULL)
{
return;
}
Message.Header.MessageSize = sizeof(LPC_DBG_MESSAGE);
Message.Header.DataSize = sizeof(LPC_DBG_MESSAGE) -
sizeof(LPC_MESSAGE);
Message.Type = DBG_EVENT_CREATE_THREAD;
Message.Status = STATUS_SUCCESS;
Message.Data.CreateThread.Reserved = 0;
Message.Data.CreateThread.StartAddress = StartAddress;
/* FIXME: Freeze all threads in process */
/* Send the message to the process's debug port and wait for a reply */
Status =
LpcSendDebugMessagePort(PsGetCurrentThread()->ThreadsProcess->DebugPort,
&Message,
&Reply);
if (!NT_SUCCESS(Status))
{
return;
}
/* FIXME: Examine reply */
return;
}
ULONG
DbgkForwardException(EXCEPTION_RECORD Er, ULONG FirstChance)
{
LPC_DBG_MESSAGE Message;
LPC_DBG_MESSAGE Reply;
NTSTATUS Status;
if (PsGetCurrentThread()->ThreadsProcess->DebugPort == NULL)
{
return(0);
}
Message.Header.MessageSize = sizeof(LPC_DBG_MESSAGE);
Message.Header.DataSize = sizeof(LPC_DBG_MESSAGE) -
sizeof(LPC_MESSAGE);
Message.Type = DBG_EVENT_EXCEPTION;
Message.Status = STATUS_SUCCESS;
Message.Data.Exception.ExceptionRecord = Er;
Message.Data.Exception.FirstChance = FirstChance;
/* FIXME: Freeze all threads in process */
/* Send the message to the process's debug port and wait for a reply */
Status =
LpcSendDebugMessagePort(PsGetCurrentThread()->ThreadsProcess->DebugPort,
&Message,
&Reply);
if (!NT_SUCCESS(Status))
{
return(0);
}
/* FIXME: Examine reply */
return(0);
}
/* EOF */