1 /* $Id: kd.h,v 1.13 2002/07/19 03:56:47 ei Exp $
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
21 extern ULONG KdDebugState
;
23 KD_PORT_INFORMATION GdbPortInfo
;
24 KD_PORT_INFORMATION LogPortInfo
;
26 typedef enum _KD_CONTINUE_TYPE
29 kdDoNotHandleException
,
34 KdpPrintString (PANSI_STRING String
);
37 DebugLogWrite(PCH String
);
50 KdPutChar(UCHAR Value
);
59 KdGdbDebugPrint (LPSTR Message
);
62 KdDebugPrint (LPSTR Message
);
65 KdEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord
,
67 PKTRAP_FRAME TrapFrame
);
68 VOID
KdInitializeMda(VOID
);
69 VOID
KdPrintMda(PCH pch
);
72 #define KDB_DELETEPROCESS_HOOK(PROCESS)
73 #define KDB_LOADDRIVER_HOOK(FILENAME, MODULE)
74 #define KDB_UNLOADDRIVER_HOOK(MODULE)
75 #define KDB_LOADERINIT_HOOK(NTOS, HAL)
76 #define KDB_SYMBOLFILE_HOOK(LOADBASE, FILENAME, LENGTH)
78 #define KDB_DELETEPROCESS_HOOK(PROCESS) KdbFreeSymbolsProcess(PROCESS)
79 #define KDB_LOADDRIVER_HOOK(FILENAME, MODULE) KdbLoadDriver(FILENAME, MODULE)
80 #define KDB_UNLOADDRIVER_HOOK(MODULE) KdbUnloadDriver(MODULE)
81 #define KDB_LOADERINIT_HOOK(NTOS, HAL) KdbLdrInit(NTOS, HAL)
82 #define KDB_SYMBOLFILE_HOOK(LOADBASE, FILENAME, LENGTH) \
83 KdbProcessSymbolFile(LOADBASE, FILENAME, LENGTH)
87 KdbLdrLoadUserModuleSymbols(PLDR_MODULE LdrModule
);
89 KdbProcessSymbolFile(PVOID ModuleLoadBase
, PCHAR FileName
, ULONG Length
);
91 KdbLdrInit(MODULE_TEXT_SECTION
* NtoskrnlTextSection
,
92 MODULE_TEXT_SECTION
* LdrHalTextSection
);
94 KdbUnloadDriver(PMODULE_OBJECT ModuleObject
);
96 KdbLoadDriver(PUNICODE_STRING Filename
, PMODULE_OBJECT Module
);
98 KdbFreeSymbolsProcess(PPEB Peb
);
100 KdbPrintAddress(PVOID address
);
102 #endif /* __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H */