private bool SymDebugCallback( IntPtr hProcess, DbgHelpCallbackActionCode ActionCode, IntPtr CallbackData ) { if (_trace_symbol_loading) { switch (ActionCode) { case DbgHelpCallbackActionCode.CBA_EVENT: var evt = (IMAGEHLP_CBA_EVENTW)Marshal.PtrToStructure(CallbackData, typeof(IMAGEHLP_CBA_EVENTW)); _trace_writer.WriteLine(Marshal.PtrToStringUni(evt.desc).TrimEnd()); return(true); } } if (_enable_symsrv_fallback) { switch (ActionCode) { case DbgHelpCallbackActionCode.CBA_DEFERRED_SYMBOL_LOAD_START: { var load_evt = (IMAGEHLP_DEFERRED_SYMBOL_LOADW)Marshal.PtrToStructure(CallbackData, typeof(IMAGEHLP_DEFERRED_SYMBOL_LOADW)); return(CheckOrDownloadSymbolFile(load_evt.FileName)); } } } return(false); }
private bool SymDebugCallback( IntPtr hProcess, DbgHelpCallbackActionCode ActionCode, long CallbackData, long UserContext ) { if (_callbacks.ContainsKey(hProcess)) { return(_callbacks[hProcess](hProcess, ActionCode, new IntPtr(CallbackData))); } return(false); }