KdpSymbol
VOID __fastcall KdpSymbol(
_STRING *String,
_KD_SYMBOLS_INFO *Symbol,
UINT8 Unload,
CHAR PreviousMode,
_CONTEXT *ContextRecord,
_KTRAP_FRAME *TrapFrame,
_KEXCEPTION_FRAME *ExceptionFrame){
UINT8 v10;
struct _KPRCB *CurrentPrcb;
UINT8 v12;
if( !PreviousMode && !(_BYTE)KdDebuggerNotPresent )
{
v10 = KdEnterDebugger(TrapFrame, (KTRAP_FRAME *)ExceptionFrame);
CurrentPrcb = KeGetCurrentPrcb();
v12 = v10;
KiSaveProcessorControlState((_KPROCESSOR_STATE *)((char *)CurrentPrcb + 256));
KdpCopyContext(*((_CONTEXT **)CurrentPrcb + 4280), ContextRecord->ContextFlags, ContextRecord);
KdpReportLoadSymbolsStateChange(String, Symbol, Unload, *((_CONTEXT **)CurrentPrcb + 4280));
KdpCopyContext(
ContextRecord,
*(unsigned int *)(*((_QWORD *)CurrentPrcb + 4280) + 48i64),
*((_CONTEXT **)CurrentPrcb + 4280));
KiRestoreProcessorControlState((INT64)CurrentPrcb + 256);
KdExitDebugger(v12);
}
}Referenced by:
KdpTrap