I am trying to obtain the module GUIDs from the current process by enumerating the loaded modules using EnumerateLoadedModules64 and in the enumeration callback load modules using SymLoadModuleEx and after that getting module information using SymGetModuleInfoW64.
For all modules with an existing PDB this call succeeds and the PdbSig70 contains the GUID for the module. However, if I delete the PDB file, the call succeeds but the GUID is empty.
I know that the information is in the exe file since dumpbin.exe /headers [exefile] can display the GUID information without the PDB file.
The question is how to obtain this information from the running process. I want this information to be able to have users producing crash reports without a PDB with callstack addresses and module information so that I can look up the symbols using a symbol server at a later time.
Was trying to do the same thing and found this:
There’s more information here:
http://www.debuginfo.com/articles/debuginfomatch.html