我试图通过使用EnumerateLoadedModules64枚举加载的模块并在使用SymLoadModuleEx的枚举回调加载模块中获取模块 GUID,然后使用SymGetModuleInfoW64获取模块信息,从而从当前进程中获取模块 GUID 。
对于具有现有 PDB 的所有模块,此调用成功,并且PdbSig70包含模块的 GUID。但是,如果我删除 PDB 文件,则调用成功但GUID 为空。
我知道该信息在 exe 文件中,因为dumpbin.exe /headers [exefile]可以在没有 PDB 文件的情况下显示 GUID 信息。
问题是如何从正在运行的进程中获取这些信息。我希望这些信息能够让用户在没有带有调用堆栈地址和模块信息的 PDB 的情况下生成崩溃报告,以便我以后可以使用符号服务器查找符号。