public bool InitSymbolResolver(SymbolResolverContextInfo context) { symbolReader = new DefaultSymbolReader(context); contextInfo = context; TraceEventNativeMethods.SymSetOptions( TraceEventNativeMethods.SymOptions.SYMOPT_DEBUG | TraceEventNativeMethods.SymOptions.SYMOPT_CASE_INSENSITIVE | // TraceEventNativeMethods.SymOptions.SYMOPT_DEFERRED_LOADS | //TraceEventNativeMethods.SymOptions.SYMOPT_LOAD_LINES | TraceEventNativeMethods.SymOptions.SYMOPT_EXACT_SYMBOLS | TraceEventNativeMethods.SymOptions.SYMOPT_UNDNAME // undecorated names ); // for testing purpose Environment.SetEnvironmentVariable("_NT_SYMBOL_PATH", @"SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols"); bool bInit = TraceEventNativeMethods.SymInitializeW(contextInfo.currentProcessHandle, null, false); if (bInit) { registerCallback = new TraceEventNativeMethods.SymRegisterCallbackProc(SymRegisterCallbackProcInfo); TraceEventNativeMethods.SymRegisterCallbackW64(contextInfo.currentProcessHandle, registerCallback, 0); } return(bInit); }
public bool InitSymbolResolver(SymbolResolverContextInfo context) { symbolReader = new DefaultSymbolReader(context); contextInfo = context; TraceEventNativeMethods.SymSetOptions( TraceEventNativeMethods.SymOptions.SYMOPT_DEBUG | TraceEventNativeMethods.SymOptions.SYMOPT_CASE_INSENSITIVE | // TraceEventNativeMethods.SymOptions.SYMOPT_DEFERRED_LOADS | //TraceEventNativeMethods.SymOptions.SYMOPT_LOAD_LINES | TraceEventNativeMethods.SymOptions.SYMOPT_EXACT_SYMBOLS | TraceEventNativeMethods.SymOptions.SYMOPT_UNDNAME // undecorated names ); // for testing purpose Environment.SetEnvironmentVariable("_NT_SYMBOL_PATH", @"SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols"); bool bInit = TraceEventNativeMethods.SymInitializeW(contextInfo.currentProcessHandle, null, false); if (bInit) { registerCallback = new TraceEventNativeMethods.SymRegisterCallbackProc(SymRegisterCallbackProcInfo); TraceEventNativeMethods.SymRegisterCallbackW64(contextInfo.currentProcessHandle, registerCallback, 0); } return bInit; }