1 typedef struct _BREAKPOINT_ENTRY
7 } BREAKPOINT_ENTRY
, *PBREAKPOINT_ENTRY
;
9 typedef enum _KDP_BREAKPOINT_FLAGS
11 KdpBreakpointActive
= 1,
12 KdpBreakpointPending
= 2,
13 KdpBreakpointSuspended
= 4,
14 KdpBreakpointExpired
= 8
15 } KDP_BREAKPOINT_FLAGS
;
19 (NTAPI
*PKDEBUG_ROUTINE
)(
20 IN PKTRAP_FRAME TrapFrame
,
21 IN PKEXCEPTION_FRAME ExceptionFrame
,
22 IN PEXCEPTION_RECORD ExceptionRecord
,
24 IN KPROCESSOR_MODE PreviousMode
,
25 IN BOOLEAN SecondChance
30 (NTAPI
*PKDEBUG_SWITCH_ROUTINE
)(
31 IN PEXCEPTION_RECORD ExceptionRecord
,
33 IN BOOLEAN SecondChance
38 KdpEnterDebuggerException(
39 IN PKTRAP_FRAME TrapFrame
,
40 IN PKEXCEPTION_FRAME ExceptionFrame
,
41 IN PEXCEPTION_RECORD ExceptionRecord
,
43 IN KPROCESSOR_MODE PreviousMode
,
44 IN BOOLEAN SecondChance
56 IN PEXCEPTION_RECORD ExceptionRecord
,
57 IN OUT PCONTEXT ContextRecord
,
58 IN BOOLEAN SecondChanceException
63 KdpTimeSlipDpcRoutine(
65 IN PVOID DeferredContext
,
66 IN PVOID SystemArgument1
,
67 IN PVOID SystemArgument2
73 IN PKTRAP_FRAME TrapFrame
,
74 IN PKEXCEPTION_FRAME ExceptionFrame
,
75 IN PEXCEPTION_RECORD ExceptionRecord
,
76 IN PCONTEXT ContextRecord
,
77 IN KPROCESSOR_MODE PreviousMode
,
78 IN BOOLEAN SecondChanceException
84 IN PKTRAP_FRAME TrapFrame
,
85 IN PKEXCEPTION_FRAME ExceptionFrame
,
86 IN PEXCEPTION_RECORD ExceptionRecord
,
87 IN PCONTEXT ContextRecord
,
88 IN KPROCESSOR_MODE PreviousMode
,
89 IN BOOLEAN SecondChanceException
107 IN PKTRAP_FRAME TrapFrame
,
108 IN PKEXCEPTION_FRAME ExceptionFrame
119 KdEnableDebuggerWithLock(
126 IN ULONG ComponentId
,
127 IN ULONG ComponentMask
,
130 IN KPROCESSOR_MODE PreviousMode
,
131 IN PKTRAP_FRAME TrapFrame
,
132 IN PKEXCEPTION_FRAME ExceptionFrame
,
140 IN PKD_SYMBOLS_INFO DllBase
,
142 IN KPROCESSOR_MODE PreviousMode
,
143 IN PCONTEXT ContextRecord
,
144 IN PKTRAP_FRAME TrapFrame
,
145 IN PKEXCEPTION_FRAME ExceptionFrame
150 KdpPollBreakInWithPortLock(
156 KdpReportLoadSymbolsStateChange(
158 IN PKD_SYMBOLS_INFO SymbolInfo
,
160 IN OUT PCONTEXT Context
165 KdpRestoreAllBreakpoints(
175 extern DBGKD_GET_VERSION64 KdVersionBlock
;
176 extern KDDEBUGGER_DATA64 KdDebuggerDataBlock
;
177 extern LIST_ENTRY KdpDebuggerDataListHead
;
178 extern KSPIN_LOCK KdpDataSpinLock
;
179 extern LARGE_INTEGER KdPerformanceCounterRate
;
180 extern LARGE_INTEGER KdTimerStart
;
181 extern ULONG KdDisableCount
;
182 extern KD_CONTEXT KdpContext
;
183 extern PKDEBUG_ROUTINE KiDebugRoutine
;
184 extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine
;
185 extern BOOLEAN KdBreakAfterSymbolLoad
;
186 extern BOOLEAN KdPitchDebugger
;
187 extern BOOLEAN _KdDebuggerNotPresent
;
188 extern BOOLEAN _KdDebuggerEnabled
;
189 extern BOOLEAN KdAutoEnableOnEvent
;
190 extern BOOLEAN KdPreviouslyEnabled
;
191 extern BOOLEAN KdpDebuggerStructuresInitialized
;
192 extern BOOLEAN KdEnteredDebugger
;
193 extern KDPC KdpTimeSlipDpc
;
194 extern KTIMER KdpTimeSlipTimer
;
195 extern WORK_QUEUE_ITEM KdpTimeSlipWorkItem
;
196 extern LONG KdpTimeSlipPending
;
197 extern PKEVENT KdpTimeSlipEvent
;
198 extern KSPIN_LOCK KdpTimeSlipEventLock
;
199 extern BOOLEAN KdpControlCPressed
;
200 extern BOOLEAN KdpControlCWaiting
;
201 extern BOOLEAN KdpPortLocked
;
202 extern KSPIN_LOCK KdpDebuggerLock
;
203 extern LARGE_INTEGER KdTimerStop
, KdTimerStart
, KdTimerDifference
;
204 extern ULONG KdComponentTableSize
;
205 extern ULONG Kd_WIN2000_Mask
;
206 extern PULONG KdComponentTable
[104];
207 extern CHAR KdpMessageBuffer
[4096], KdpPathBuffer
[4096];
208 extern BREAKPOINT_ENTRY KdpBreakpointTable
[20];
209 extern ULONG KdpBreakpointInstruction
;
210 extern BOOLEAN KdpOweBreakpoint
;
211 extern BOOLEAN BreakpointsSuspended
;
212 extern ULONG KdpNumInternalBreakpoints
;
213 extern ULONG KdpCurrentSymbolStart
, KdpCurrentSymbolEnd
;