【发布时间】:2012-08-22 09:48:27
【问题描述】:
我正在尝试通过使用 EnumerateLoadedModules64 枚举加载的模块并在使用 SymLoadModuleEx 的枚举回调加载模块中获取模块 GUID,然后获取模块使用 SymGetModuleInfoW64 获取信息。
对于具有现有 PDB 的所有模块,此调用成功并且 PdbSig70 包含模块的 GUID。但是,如果我删除 PDB 文件,调用会成功,但 GUID 为空。
我知道该信息在exe文件中,因为dumpbin.exe /headers [exefile]可以在没有PDB文件的情况下显示GUID信息。
问题是如何从正在运行的进程中获取这些信息。我希望这些信息能够让用户在没有带有调用堆栈地址和模块信息的 PDB 的情况下生成崩溃报告,以便我以后可以使用符号服务器查找符号。
【问题讨论】:
标签: c++ windows guid symbols callstack