2009-10-12 03:35:35 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: ReactOS Kernel
|
|
|
|
* LICENSE: GPL - See COPYING in the top level directory
|
|
|
|
* FILE: ntoskrnl/include/kd64.h
|
|
|
|
* PURPOSE: Internal header for the KD64 Library
|
|
|
|
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
|
|
|
|
*/
|
|
|
|
|
|
|
|
//
|
|
|
|
// Maximum supported number of breakpoints
|
|
|
|
//
|
|
|
|
#define KD_BREAKPOINT_MAX 32
|
|
|
|
|
2009-11-02 17:45:51 +00:00
|
|
|
//
|
|
|
|
// Default size of the DbgPrint log buffer
|
|
|
|
//
|
|
|
|
#if DBG
|
|
|
|
#define KD_DEFAULT_LOG_BUFFER_SIZE 0x8000
|
|
|
|
#else
|
|
|
|
#define KD_DEFAULT_LOG_BUFFER_SIZE 0x1000
|
|
|
|
#endif
|
|
|
|
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
|
|
|
// Breakpoint Status Flags
|
|
|
|
//
|
|
|
|
typedef enum _KDP_BREAKPOINT_FLAGS
|
|
|
|
{
|
|
|
|
KdpBreakpointActive = 1,
|
|
|
|
KdpBreakpointPending = 2,
|
|
|
|
KdpBreakpointSuspended = 4,
|
|
|
|
KdpBreakpointExpired = 8
|
|
|
|
} KDP_BREAKPOINT_FLAGS;
|
|
|
|
|
|
|
|
//
|
|
|
|
// Structure for Breakpoints
|
|
|
|
//
|
|
|
|
typedef struct _BREAKPOINT_ENTRY
|
|
|
|
{
|
|
|
|
ULONG Flags;
|
|
|
|
PKPROCESS Process;
|
|
|
|
PVOID Address;
|
|
|
|
KD_BREAKPOINT_TYPE Content;
|
|
|
|
} BREAKPOINT_ENTRY, *PBREAKPOINT_ENTRY;
|
|
|
|
|
|
|
|
//
|
|
|
|
// Debug and Multi-Processor Switch Routine Definitions
|
|
|
|
//
|
|
|
|
typedef
|
|
|
|
BOOLEAN
|
|
|
|
(NTAPI *PKDEBUG_ROUTINE)(
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame,
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT Context,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN BOOLEAN SecondChance
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef
|
|
|
|
BOOLEAN
|
|
|
|
(NTAPI *PKDEBUG_SWITCH_ROUTINE)(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT Context,
|
|
|
|
IN BOOLEAN SecondChance
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Initialization Routines
|
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdInitSystem(
|
|
|
|
ULONG Reserved,
|
|
|
|
PLOADER_PARAMETER_BLOCK LoaderBlock
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdUpdateDataBlock(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2009-10-17 14:31:38 +00:00
|
|
|
//
|
|
|
|
// Determines if the kernel debugger must handle a particular trap
|
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdIsThisAKdTrap(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT Context,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode
|
|
|
|
);
|
|
|
|
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
|
|
|
// Multi-Processor Switch Support
|
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpSwitchProcessor(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN OUT PCONTEXT ContextRecord,
|
|
|
|
IN BOOLEAN SecondChanceException
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Time Slip Support
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpTimeSlipWork(
|
|
|
|
IN PVOID Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpTimeSlipDpcRoutine(
|
|
|
|
IN PKDPC Dpc,
|
|
|
|
IN PVOID DeferredContext,
|
|
|
|
IN PVOID SystemArgument1,
|
|
|
|
IN PVOID SystemArgument2
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Debug Trap Handlers
|
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpStub(
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame,
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT ContextRecord,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN BOOLEAN SecondChanceException
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpTrap(
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame,
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT ContextRecord,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN BOOLEAN SecondChanceException
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Port Locking
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpPortLock(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpPortUnlock(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpPollBreakInWithPortLock(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
2009-10-17 14:31:38 +00:00
|
|
|
// Debugger Enter, Exit, Enable and Disable
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdEnterDebugger(
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdExitDebugger(
|
2009-11-08 01:13:49 +00:00
|
|
|
IN BOOLEAN Enable
|
2009-10-12 03:35:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdEnableDebuggerWithLock(
|
|
|
|
IN BOOLEAN NeedLock
|
|
|
|
);
|
|
|
|
|
2009-10-17 14:31:38 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdDisableDebuggerWithLock(
|
|
|
|
IN BOOLEAN NeedLock
|
|
|
|
);
|
|
|
|
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
|
|
|
// Debug Event Handlers
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpPrint(
|
|
|
|
IN ULONG ComponentId,
|
2009-11-02 17:45:51 +00:00
|
|
|
IN ULONG Level,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN LPSTR String,
|
|
|
|
IN USHORT Length,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame,
|
2009-11-08 01:13:49 +00:00
|
|
|
OUT PBOOLEAN Handled
|
2009-10-12 03:35:35 +00:00
|
|
|
);
|
|
|
|
|
2009-10-23 22:51:39 +00:00
|
|
|
USHORT
|
2009-10-12 03:35:35 +00:00
|
|
|
NTAPI
|
|
|
|
KdpPrompt(
|
2009-10-23 22:51:39 +00:00
|
|
|
IN LPSTR PromptString,
|
|
|
|
IN USHORT PromptLength,
|
|
|
|
OUT LPSTR ResponseString,
|
|
|
|
IN USHORT MaximumResponseLength,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpSymbol(
|
|
|
|
IN PSTRING DllPath,
|
2009-10-25 15:56:38 +00:00
|
|
|
IN PKD_SYMBOLS_INFO SymbolInfo,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN BOOLEAN Unload,
|
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN PCONTEXT ContextRecord,
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpCommandString(
|
2009-11-02 17:45:51 +00:00
|
|
|
IN PSTRING NameString,
|
|
|
|
IN PSTRING CommandString,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN KPROCESSOR_MODE PreviousMode,
|
|
|
|
IN PCONTEXT ContextRecord,
|
|
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
|
|
IN PKEXCEPTION_FRAME ExceptionFrame
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// State Change Notifications
|
|
|
|
//
|
2009-11-02 17:45:51 +00:00
|
|
|
VOID
|
2009-10-12 03:35:35 +00:00
|
|
|
NTAPI
|
|
|
|
KdpReportLoadSymbolsStateChange(
|
|
|
|
IN PSTRING PathName,
|
|
|
|
IN PKD_SYMBOLS_INFO SymbolInfo,
|
|
|
|
IN BOOLEAN Unload,
|
|
|
|
IN OUT PCONTEXT Context
|
|
|
|
);
|
|
|
|
|
2009-11-02 17:45:51 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpReportCommandStringStateChange(
|
|
|
|
IN PSTRING NameString,
|
|
|
|
IN PSTRING CommandString,
|
|
|
|
IN OUT PCONTEXT Context
|
|
|
|
);
|
|
|
|
|
2009-10-12 03:35:35 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpReportExceptionStateChange(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN OUT PCONTEXT Context,
|
|
|
|
IN BOOLEAN SecondChanceException
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Breakpoint Support
|
|
|
|
//
|
2009-10-17 14:31:38 +00:00
|
|
|
ULONG
|
2009-10-12 03:35:35 +00:00
|
|
|
NTAPI
|
2009-10-17 14:31:38 +00:00
|
|
|
KdpAddBreakpoint(
|
|
|
|
IN PVOID Address
|
2009-10-12 03:35:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpDeleteBreakpoint(
|
|
|
|
IN ULONG BpEntry
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
KdpDeleteBreakpointRange(
|
|
|
|
IN PVOID Base,
|
|
|
|
IN PVOID Limit
|
|
|
|
);
|
|
|
|
|
2009-10-17 14:31:38 +00:00
|
|
|
VOID
|
2009-10-12 03:35:35 +00:00
|
|
|
NTAPI
|
2009-10-17 14:31:38 +00:00
|
|
|
KdpSuspendBreakPoint(
|
|
|
|
IN ULONG BpEntry
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpRestoreAllBreakpoints(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpSuspendAllBreakPoints(
|
|
|
|
VOID
|
2009-10-12 03:35:35 +00:00
|
|
|
);
|
|
|
|
|
2009-11-08 01:13:49 +00:00
|
|
|
//
|
|
|
|
// Routine to determine if it is safe to disable the debugger
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpAllowDisable(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2009-10-31 01:02:35 +00:00
|
|
|
//
|
|
|
|
// Safe memory read & write Support
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpCopyMemoryChunks(
|
|
|
|
IN ULONG64 Address,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
IN ULONG TotalSize,
|
|
|
|
IN ULONG ChunkSize,
|
|
|
|
IN ULONG Flags,
|
|
|
|
OUT PULONG ActualSize OPTIONAL
|
|
|
|
);
|
|
|
|
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
2009-11-02 17:45:51 +00:00
|
|
|
// Low Level Support Routines for the KD API
|
2009-10-12 03:35:35 +00:00
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// Version
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpSysGetVersion(
|
|
|
|
IN PDBGKD_GET_VERSION64 Version
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Context
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpGetStateChange(
|
|
|
|
IN PDBGKD_MANIPULATE_STATE64 State,
|
|
|
|
IN PCONTEXT Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
KdpSetContextState(
|
2009-10-25 15:56:38 +00:00
|
|
|
IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN PCONTEXT Context
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// MSR
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysReadMsr(
|
|
|
|
IN ULONG Msr,
|
|
|
|
OUT PLARGE_INTEGER MsrValue
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysWriteMsr(
|
|
|
|
IN ULONG Msr,
|
|
|
|
IN PLARGE_INTEGER MsrValue
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Bus
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysReadBusData(
|
|
|
|
IN ULONG BusDataType,
|
|
|
|
IN ULONG BusNumber,
|
|
|
|
IN ULONG SlotNumber,
|
|
|
|
IN ULONG Offset,
|
2009-10-17 14:31:38 +00:00
|
|
|
IN PVOID Buffer,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN ULONG Length,
|
|
|
|
OUT PULONG ActualLength
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysWriteBusData(
|
|
|
|
IN ULONG BusDataType,
|
|
|
|
IN ULONG BusNumber,
|
|
|
|
IN ULONG SlotNumber,
|
|
|
|
IN ULONG Offset,
|
2009-10-17 14:31:38 +00:00
|
|
|
IN PVOID Buffer,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN ULONG Length,
|
|
|
|
OUT PULONG ActualLength
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Control Space
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysReadControlSpace(
|
|
|
|
IN ULONG Processor,
|
|
|
|
IN ULONG64 BaseAddress,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
IN ULONG Length,
|
|
|
|
OUT PULONG ActualLength
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysWriteControlSpace(
|
|
|
|
IN ULONG Processor,
|
|
|
|
IN ULONG64 BaseAddress,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
IN ULONG Length,
|
|
|
|
OUT PULONG ActualLength
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// I/O Space
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysReadIoSpace(
|
|
|
|
IN ULONG InterfaceType,
|
|
|
|
IN ULONG BusNumber,
|
|
|
|
IN ULONG AddressSpace,
|
|
|
|
IN ULONG64 IoAddress,
|
2009-10-13 19:45:40 +00:00
|
|
|
IN PVOID DataValue,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN ULONG DataSize,
|
|
|
|
OUT PULONG ActualDataSize
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysWriteIoSpace(
|
|
|
|
IN ULONG InterfaceType,
|
|
|
|
IN ULONG BusNumber,
|
|
|
|
IN ULONG AddressSpace,
|
|
|
|
IN ULONG64 IoAddress,
|
2009-10-13 19:45:40 +00:00
|
|
|
IN PVOID DataValue,
|
2009-10-12 03:35:35 +00:00
|
|
|
IN ULONG DataSize,
|
|
|
|
OUT PULONG ActualDataSize
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Low Memory
|
|
|
|
//
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
KdpSysCheckLowMemory(
|
|
|
|
IN ULONG Flags
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Internal routine for sending strings directly to the debugger
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
__cdecl
|
|
|
|
KdpDprintf(
|
|
|
|
IN PCHAR Format,
|
|
|
|
...
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Global KD Data
|
|
|
|
//
|
|
|
|
extern DBGKD_GET_VERSION64 KdVersionBlock;
|
|
|
|
extern KDDEBUGGER_DATA64 KdDebuggerDataBlock;
|
|
|
|
extern LIST_ENTRY KdpDebuggerDataListHead;
|
|
|
|
extern KSPIN_LOCK KdpDataSpinLock;
|
|
|
|
extern LARGE_INTEGER KdPerformanceCounterRate;
|
|
|
|
extern LARGE_INTEGER KdTimerStart;
|
|
|
|
extern ULONG KdDisableCount;
|
|
|
|
extern KD_CONTEXT KdpContext;
|
|
|
|
extern PKDEBUG_ROUTINE KiDebugRoutine;
|
|
|
|
extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
|
|
|
|
extern BOOLEAN KdBreakAfterSymbolLoad;
|
|
|
|
extern BOOLEAN KdPitchDebugger;
|
|
|
|
extern BOOLEAN _KdDebuggerNotPresent;
|
|
|
|
extern BOOLEAN _KdDebuggerEnabled;
|
|
|
|
extern BOOLEAN KdAutoEnableOnEvent;
|
2009-10-17 14:31:38 +00:00
|
|
|
extern BOOLEAN KdBlockEnable;
|
|
|
|
extern BOOLEAN KdIgnoreUmExceptions;
|
2009-10-12 03:35:35 +00:00
|
|
|
extern BOOLEAN KdPreviouslyEnabled;
|
|
|
|
extern BOOLEAN KdpDebuggerStructuresInitialized;
|
|
|
|
extern BOOLEAN KdEnteredDebugger;
|
|
|
|
extern KDPC KdpTimeSlipDpc;
|
|
|
|
extern KTIMER KdpTimeSlipTimer;
|
|
|
|
extern WORK_QUEUE_ITEM KdpTimeSlipWorkItem;
|
|
|
|
extern LONG KdpTimeSlipPending;
|
|
|
|
extern PKEVENT KdpTimeSlipEvent;
|
|
|
|
extern KSPIN_LOCK KdpTimeSlipEventLock;
|
|
|
|
extern BOOLEAN KdpPortLocked;
|
|
|
|
extern BOOLEAN KdpControlCPressed;
|
2009-11-02 17:45:51 +00:00
|
|
|
extern BOOLEAN KdpContextSent;
|
2009-10-12 03:35:35 +00:00
|
|
|
extern KSPIN_LOCK KdpDebuggerLock;
|
|
|
|
extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
|
|
|
|
extern ULONG KdComponentTableSize;
|
|
|
|
extern ULONG Kd_WIN2000_Mask;
|
|
|
|
extern PULONG KdComponentTable[104];
|
2009-11-02 17:45:51 +00:00
|
|
|
extern CHAR KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000];
|
|
|
|
extern CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE];
|
2009-10-12 03:35:35 +00:00
|
|
|
extern BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX];
|
|
|
|
extern KD_BREAKPOINT_TYPE KdpBreakpointInstruction;
|
|
|
|
extern BOOLEAN KdpOweBreakpoint;
|
|
|
|
extern BOOLEAN BreakpointsSuspended;
|
|
|
|
extern ULONG KdpNumInternalBreakpoints;
|
|
|
|
extern ULONG KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
|
|
|
|
extern ULONG TraceDataBuffer[40];
|
|
|
|
extern ULONG TraceDataBufferPosition;
|