ReactOS 0.4.15-dev-5895-g2687c1b
kdb.h
Go to the documentation of this file.
1#pragma once
2#include "../kd/kd.h"
3
4/* TYPES *********************************************************************/
5
6/* from kdb.c */
8
10{
16
17typedef enum _KDB_ACCESS_TYPE
18{
24
25typedef struct _KDB_BREAKPOINT
26{
27 KDB_BREAKPOINT_TYPE Type; /* Type of breakpoint */
28 BOOLEAN Enabled; /* Whether the bp is enabled */
29 ULONG_PTR Address; /* Address of the breakpoint */
30 BOOLEAN Global; /* Whether the breakpoint is global or local to a process */
31 PEPROCESS Process; /* Owning process */
34 union {
35 /* KdbBreakPointSoftware */
37 /* KdbBreakPointHardware */
38 struct {
42 } Hw;
45
47{
53
54
55/* FUNCTIONS *****************************************************************/
56
57/* from i386/i386-dis.c */
58
59LONG
62 IN ULONG IntelSyntax);
63
64LONG
67
68/* from i386/kdb_help.S */
69
72 IN PVOID NewStack,
73 IN VOID (*Function)(VOID));
74
75/* from kdb_cli.c */
76
78
83 _In_ ULONG BootPhase);
84
89 BOOLEAN Deregister);
90
93
94VOID
96 IN BOOLEAN EnteredOnSingleStep);
97
98VOID
100
101VOID
104
105PCSTR
107 _Inout_ PLONG NextIndex,
108 _In_ BOOLEAN Next);
109
110VOID
113 _In_ ULONG BufLength);
114
115VOID
118 _In_ ...);
119
120VOID
123
125NTAPI
127 IN PCHAR pszNum,
128 OUT ULONG_PTR *pulValue);
129
130/* from kdb_expr.c */
131
135 IN PKDB_KTRAP_FRAME TrapFrame,
137 OUT PLONG ErrOffset OPTIONAL,
138 OUT PCHAR ErrMsg OPTIONAL);
139
140PVOID
143 OUT PLONG ErrOffset OPTIONAL,
144 OUT PCHAR ErrMsg OPTIONAL);
145
149 IN PKDB_KTRAP_FRAME TrapFrame,
151 OUT PLONG ErrOffset OPTIONAL,
152 OUT PCHAR ErrMsg OPTIONAL);
153
154/* from kdb_symbols.c */
155
160 OUT PLDR_DATA_TABLE_ENTRY* pLdrEntry);
161
166
167VOID
170 _In_ BOOLEAN Load);
171
174 _In_ ULONG BootPhase);
175
176/* from kdb.c */
177
184
185LONG
188
191 IN ULONG BreakPointNr,
195 OUT KDB_ACCESS_TYPE *AccessType OPTIONAL,
196 OUT UCHAR *DebugReg OPTIONAL,
200 OUT PCHAR *ConditionExpression OPTIONAL);
201
207 IN KDB_ACCESS_TYPE AccessType OPTIONAL,
208 IN PCHAR ConditionExpression OPTIONAL,
210 OUT PLONG BreakPointNr OPTIONAL);
211
214 IN LONG BreakPointNr OPTIONAL,
215 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL);
216
219 IN LONG BreakPointNr OPTIONAL,
220 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL);
221
224 IN LONG BreakPointNr OPTIONAL,
225 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL);
226
229 IN LONG ExceptionNr,
230 IN BOOLEAN FirstChance,
232
235 IN LONG ExceptionNr,
236 IN BOOLEAN FirstChance,
238
241 PVOID ThreadId);
242
246
247VOID
249 _In_ PCSTR p1);
250
251KD_CONTINUE_TYPE
255 IN BOOLEAN FirstChance);
256
257/* other functions */
258
260NTAPI
262 IN ULONG_PTR Addr,
263 IN LONG Len,
265);
266
268NTAPI
270 IN ULONG_PTR Addr,
271 IN LONG Len,
273);
274
277 IN PVOID Src,
278 IN ULONG Bytes);
279
282 IN PVOID Src,
283 IN ULONG Bytes);
284
285VOID
287
288VOID
PCWSTR Expression
unsigned char BOOLEAN
Type
Definition: Type.h:7
LONG NTSTATUS
Definition: precomp.h:26
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
Definition: bufpool.h:45
#define Len
Definition: deflate.h:82
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2711
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
VOID KdbpPager(_In_ PCHAR Buffer, _In_ ULONG BufLength)
Prints the given string with, page by page.
Definition: kdb_cli.c:3069
PEPROCESS KdbCurrentProcess
Definition: kdb.c:53
LONG KdbpGetNextBreakPointNr(IN ULONG Start OPTIONAL)
Gets the number of the next breakpoint >= Start.
Definition: kdb.c:383
BOOLEAN KdbSymPrintAddress(IN PVOID Address, IN PCONTEXT Context)
Print address...
Definition: kdb_symbols.c:148
PETHREAD KdbCurrentThread
Definition: kdb.c:55
enum _KDB_ENTER_CONDITION KDB_ENTER_CONDITION
PCSTR KdbGetHistoryEntry(_Inout_ PLONG NextIndex, _In_ BOOLEAN Next)
Definition: kdprompt.c:24
PKDB_KTRAP_FRAME KdbCurrentTrapFrame
Definition: kdb.c:57
CONTEXT * PKDB_KTRAP_FRAME
Definition: kdb.h:7
struct _KDB_BREAKPOINT * PKDB_BREAKPOINT
_KDB_BREAKPOINT_TYPE
Definition: kdb.h:10
@ KdbBreakPointSoftware
Definition: kdb.h:12
@ KdbBreakPointNone
Definition: kdb.h:11
@ KdbBreakPointTemporary
Definition: kdb.h:14
@ KdbBreakPointHardware
Definition: kdb.h:13
VOID KdbpCliInterpretInitFile(VOID)
This function is called by KdbEnterDebuggerException...
Definition: kdb_cli.c:3343
BOOLEAN NTAPI KdbRegisterCliCallback(PVOID Callback, BOOLEAN Deregister)
Definition: kdb_cli.c:3130
BOOLEAN KdbpSetEnterCondition(IN LONG ExceptionNr, IN BOOLEAN FirstChance, IN KDB_ENTER_CONDITION Condition)
Sets the first or last chance enter-condition for exception nr. ExceptionNr.
Definition: kdb.c:997
PVOID KdbpRpnParseExpression(IN PCHAR Expression, OUT PLONG ErrOffset OPTIONAL, OUT PCHAR ErrMsg OPTIONAL)
Parses the given expression and returns a "handle" to it.
Definition: kdb_expr.c:1142
BOOLEAN KdbpDisableBreakPoint(IN LONG BreakPointNr OPTIONAL, IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL)
Disables a breakpoint.
Definition: kdb.c:870
BOOLEAN KdbpGetEnterCondition(IN LONG ExceptionNr, IN BOOLEAN FirstChance, OUT KDB_ENTER_CONDITION *Condition)
Gets the first or last chance enter-condition for exception nr. ExceptionNr.
Definition: kdb.c:975
BOOLEAN KdbpRpnEvaluateExpression(IN PCHAR Expression, IN PKDB_KTRAP_FRAME TrapFrame, OUT PULONGLONG Result, OUT PLONG ErrOffset OPTIONAL, OUT PCHAR ErrMsg OPTIONAL)
Evaluates the given expression.
Definition: kdb_expr.c:1102
BOOLEAN KdbpRpnEvaluateParsedExpression(IN PVOID Expression, IN PKDB_KTRAP_FRAME TrapFrame, OUT PULONGLONG Result, OUT PLONG ErrOffset OPTIONAL, OUT PCHAR ErrMsg OPTIONAL)
Evaluates the given expression and returns the result.
Definition: kdb_expr.c:1196
VOID NTAPI KdbpStackSwitchAndCall(IN PVOID NewStack, IN VOID(*Function)(VOID))
NTSTATUS NTAPI KdbInitialize(_In_ PKD_DISPATCH_TABLE DispatchTable, _In_ ULONG BootPhase)
Initializes the KDBG debugger.
Definition: kdb_cli.c:3552
VOID KdbpPrintUnicodeString(_In_ PCUNICODE_STRING String)
Definition: kdb_cli.c:3110
BOOLEAN NTAPI KdpSafeWriteMemory(IN ULONG_PTR Addr, IN LONG Len, IN ULONGLONG Value)
VOID KdbpCommandHistoryAppend(_In_ PCSTR Command)
Appends a command to the command history.
Definition: kdb_cmdhist.c:37
_KDB_ACCESS_TYPE
Definition: kdb.h:18
@ KdbAccessExec
Definition: kdb.h:22
@ KdbAccessRead
Definition: kdb.h:19
@ KdbAccessReadWrite
Definition: kdb.h:21
@ KdbAccessWrite
Definition: kdb.h:20
BOOLEAN KdbpAttachToProcess(PVOID ProcessId)
Switches to another process/thread context.
Definition: kdb.c:1119
VOID KdbSymProcessSymbols(_Inout_ PLDR_DATA_TABLE_ENTRY LdrEntry, _In_ BOOLEAN Load)
Load symbols from image mapping. If this fails,.
Definition: kdb_symbols.c:298
BOOLEAN NTAPI KdpSafeReadMemory(IN ULONG_PTR Addr, IN LONG Len, OUT PVOID Value)
BOOLEAN KdbpSymFindModule(IN PVOID Address OPTIONAL, IN INT Index OPTIONAL, OUT PLDR_DATA_TABLE_ENTRY *pLdrEntry)
Find a module...
Definition: kdb_symbols.c:75
BOOLEAN KdbpAttachToThread(PVOID ThreadId)
Switches to another thread context.
Definition: kdb.c:1038
KD_CONTINUE_TYPE KdbEnterDebuggerException(IN PEXCEPTION_RECORD64 ExceptionRecord, IN KPROCESSOR_MODE PreviousMode, IN OUT PCONTEXT Context, IN BOOLEAN FirstChance)
BOOLEAN KdbpEnableBreakPoint(IN LONG BreakPointNr OPTIONAL, IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL)
Enables a breakpoint.
Definition: kdb.c:703
VOID KdbpPrint(_In_ PSTR Format, _In_ ...)
Prints the given string with printf-like formatting.
Definition: kdb_cli.c:3087
BOOLEAN KdbSymInit(_In_ ULONG BootPhase)
Initializes the KDB symbols implementation.
Definition: kdb_symbols.c:344
VOID KbdDisableMouse(VOID)
Definition: kdps2kbd.c:98
_KDB_ENTER_CONDITION
Definition: kdb.h:47
@ KdbDoNotEnter
Definition: kdb.h:48
@ KdbEnterFromUmode
Definition: kdb.h:51
@ KdbEnterAlways
Definition: kdb.h:49
@ KdbEnterFromKmode
Definition: kdb.h:50
LONG KdbLastBreakPointNr
Definition: kdb.c:49
struct _KDB_BREAKPOINT KDB_BREAKPOINT
NTSTATUS KdbpSafeWriteMemory(OUT PVOID Dest, IN PVOID Src, IN ULONG Bytes)
Definition: kdb.c:1662
VOID KbdEnableMouse(VOID)
Definition: kdps2kbd.c:93
LONG KdbpGetInstLength(IN ULONG_PTR Address)
Definition: i386-dis.c:95
BOOLEAN KdbSingleStepOver
Definition: kdb.c:51
BOOLEAN KdbpDeleteBreakPoint(IN LONG BreakPointNr OPTIONAL, IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL)
Deletes a breakpoint.
Definition: kdb.c:600
ULONG KdbNumSingleSteps
Definition: kdb.c:50
NTSTATUS KdbpInsertBreakPoint(IN ULONG_PTR Address, IN KDB_BREAKPOINT_TYPE Type, IN UCHAR Size OPTIONAL, IN KDB_ACCESS_TYPE AccessType OPTIONAL, IN PCHAR ConditionExpression OPTIONAL, IN BOOLEAN Global, OUT PLONG BreakPointNr OPTIONAL)
Inserts a breakpoint into the breakpoint array.
Definition: kdb.c:479
PCHAR KdbInitFileBuffer
Definition: kdb_cli.c:135
LONG KdbpDisassemble(IN ULONG_PTR Address, IN ULONG IntelSyntax)
Definition: i386-dis.c:125
NTSTATUS KdbpSafeReadMemory(OUT PVOID Dest, IN PVOID Src, IN ULONG Bytes)
Definition: kdb.c:1648
enum _KDB_ACCESS_TYPE KDB_ACCESS_TYPE
VOID KdbpGetCommandLineSettings(_In_ PCSTR p1)
Definition: kdb.c:1626
CONTEXT KDB_KTRAP_FRAME
Definition: kdb.h:7
VOID KdbpCliMainLoop(IN BOOLEAN EnteredOnSingleStep)
KDB Main Loop.
Definition: kdb_cli.c:3273
enum _KDB_BREAKPOINT_TYPE KDB_BREAKPOINT_TYPE
BOOLEAN NTAPI KdbpGetHexNumber(IN PCHAR pszNum, OUT ULONG_PTR *pulValue)
Definition: kdb_cli.c:448
NTSTATUS KdbpCliInit(VOID)
Called when KDB is initialized.
Definition: kdb_cli.c:3394
BOOLEAN KdbpGetBreakPointInfo(IN ULONG BreakPointNr, OUT ULONG_PTR *Address OPTIONAL, OUT KDB_BREAKPOINT_TYPE *Type OPTIONAL, OUT UCHAR *Size OPTIONAL, OUT KDB_ACCESS_TYPE *AccessType OPTIONAL, OUT UCHAR *DebugReg OPTIONAL, OUT BOOLEAN *Enabled OPTIONAL, OUT BOOLEAN *Global OPTIONAL, OUT PEPROCESS *Process OPTIONAL, OUT PCHAR *ConditionExpression OPTIONAL)
Returns information of the specified breakpoint.
Definition: kdb.c:410
_In_ UINT Bytes
Definition: mmcopy.h:9
UNICODE_STRING Global
Definition: symlink.c:37
@ Enabled
Definition: mountmgr.h:159
#define _Inout_
Definition: ms_sal.h:378
#define _In_
Definition: ms_sal.h:308
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:383
IN ULONG IN UCHAR Condition
long LONG
Definition: pedump.c:60
static WCHAR Address[46]
Definition: ping.c:68
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: shell.h:41
union _KDB_BREAKPOINT::@1790 Data
PVOID Condition
Definition: kdb.h:33
UCHAR SavedInstruction
Definition: kdb.h:36
struct _KDB_BREAKPOINT::@1790::@1791 Hw
BOOLEAN Enabled
Definition: kdb.h:28
UCHAR DebugReg
Definition: kdb.h:39
PCHAR ConditionExpression
Definition: kdb.h:32
ULONG_PTR Address
Definition: kdb.h:29
PEPROCESS Process
Definition: kdb.h:31
UCHAR Size
Definition: kdb.h:40
KDB_ACCESS_TYPE AccessType
Definition: kdb.h:41
KDB_BREAKPOINT_TYPE Type
Definition: kdb.h:27
BOOLEAN Global
Definition: kdb.h:30
Definition: btrfs_drv.h:1876
char * PSTR
Definition: typedefs.h:51
#define NTAPI
Definition: typedefs.h:36
int32_t INT
Definition: typedefs.h:58
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define OUT
Definition: typedefs.h:40
char * PCHAR
Definition: typedefs.h:51
@ Start
Definition: partlist.h:33
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:458
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
Definition: wdfpdo.h:248
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
unsigned char UCHAR
Definition: xmlstorage.h:181