2

I am calling SymGetSymFromAddr32 in test-versions of my executable. Until recently this worked correctly, but when using dbghelp.dll and symsrv.dll from the Windows SDK 8.1, my application hangs when calling this function.

This is the call stack I get:

ZwWaitForKeyedEvent()   
RtlpRunOnceWaitForInit()    
string "Enabling heap debug options\n"()    
InitOnceExecuteOnce()   
GlobalDataInitialize()  
InternetSetStatusCallbackCore() 
InternetSetStatusCallbackW()    
000007fed1e57d52    
[Frames below may be incorrect and/or missing, no symbols loaded for symsrv.dll]    
000007fed1e5786e    
000007fed1ef0149    
000007fed1ef03ac    
000007fed1edc68e    
000007fed1edd563    
000007fed1f00da8    
000007fed1eff61f    
000007fed1eff30f    
000007fed1ef5679    
000007fed1ef5705    
MyClass::SymGetSymFromAddr64(void *, unsigned __int64, unsigned __int64 *, _IMAGEHLP_SYMBOL64 *)    C++

This is when using the DLL's from the Windows SDK 8.1 (tried versions 6.3.9600.17200 and 6.3.9600.17298).

When I switch back to the DLL's from the Windows SDK 8.0 (version 6.2.9200.20512) the application works correctly and doesn't hang anymore.

Note: to make sure that I am using the correct dbghelp.dll (the one that supports a symbol server, not the one default installed in Windows), I explicitly load dbghelp.dll using LoadLibrary and symsrv.dll is stored in the same folder.

Any suggestions?

Patrick
  • 23,217
  • 12
  • 67
  • 130

0 Answers0