3 * kernel debugger prototypes
6 #ifndef __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H
7 #define __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H
9 #include <internal/ke.h>
10 #include <internal/ldr.h>
12 #define KD_DEBUG_DISABLED 0x00
13 #define KD_DEBUG_GDB 0x01
14 #define KD_DEBUG_PICE 0x02
15 #define KD_DEBUG_SCREEN 0x04
16 #define KD_DEBUG_SERIAL 0x08
17 #define KD_DEBUG_BOCHS 0x10
18 #define KD_DEBUG_FILELOG 0x20
19 #define KD_DEBUG_MDA 0x40
20 #define KD_DEBUG_KDB 0x80
22 extern ULONG KdDebugState;
24 KD_PORT_INFORMATION GdbPortInfo;
25 KD_PORT_INFORMATION LogPortInfo;
27 typedef enum _KD_CONTINUE_TYPE
30 kdDoNotHandleException,
35 KdpPrintString (PANSI_STRING String);
38 DebugLogWrite(PCH String);
54 KdPutChar(UCHAR Value);
60 KdGdbStubInit(ULONG Phase);
63 KdGdbDebugPrint (LPSTR Message);
66 KdDebugPrint (LPSTR Message);
69 KdEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord,
71 PKTRAP_FRAME TrapFrame);
72 VOID KdInitializeMda(VOID);
73 VOID KdPrintMda(PCH pch);
76 #define KDB_DELETEPROCESS_HOOK(PROCESS)
77 #define KDB_LOADDRIVER_HOOK(FILENAME, MODULE)
78 #define KDB_UNLOADDRIVER_HOOK(MODULE)
79 #define KDB_LOADERINIT_HOOK(NTOS, HAL)
80 #define KDB_SYMBOLFILE_HOOK(LOADBASE, FILENAME, LENGTH)
82 #define KDB_DELETEPROCESS_HOOK(PROCESS) KdbFreeSymbolsProcess(PROCESS)
83 #define KDB_LOADDRIVER_HOOK(FILENAME, MODULE) KdbLoadDriver(FILENAME, MODULE)
84 #define KDB_UNLOADDRIVER_HOOK(MODULE) KdbUnloadDriver(MODULE)
85 #define KDB_LOADERINIT_HOOK(NTOS, HAL) KdbLdrInit(NTOS, HAL)
86 #define KDB_SYMBOLFILE_HOOK(LOADBASE, FILENAME, LENGTH) \
87 KdbProcessSymbolFile(LOADBASE, FILENAME, LENGTH)
91 KdbLdrLoadUserModuleSymbols(PLDR_MODULE LdrModule);
93 KdbProcessSymbolFile(PVOID ModuleLoadBase, PCHAR FileName, ULONG Length);
95 KdbLdrInit(MODULE_TEXT_SECTION* NtoskrnlTextSection,
96 MODULE_TEXT_SECTION* LdrHalTextSection);
98 KdbUnloadDriver(PMODULE_OBJECT ModuleObject);
100 KdbLoadDriver(PUNICODE_STRING Filename, PMODULE_OBJECT Module);
102 KdbFreeSymbolsProcess(PEPROCESS Process);
104 KdbPrintAddress(PVOID address);
106 KdbEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord,
108 PKTRAP_FRAME TrapFrame);
110 #endif /* __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H */