有人知道如何从PDB文件中获取GUID吗?
我使用的是Microsoft的Debug Interface Access SDK
http://msdn.microsoft.com/en-us/library/f0756hat.aspx
并在尝试加载PDB时传入我期望的GUID时获取E_PDB_INVALID_SIG。
我只想知道PDB的GUID,这样我就可以确定它是不匹配的,而不仅仅是一个可能以某种方式损坏的PDB。
有没有一个工具可以做到这一点?我已经尝试了dia2dump和dumpbin,但没有喜悦...
非常感谢,
思顿。
3条答案
按热度按时间yfwxisqw1#
有一个Code Project tool called PDB Inspector应该可以帮助你。或者如果你需要通过编程来完成这个任务,你可以调用:
c8ib6hqw2#
一个introduction到DIA以及它与DbgHelp的关系,还有一个C++示例。这基本上是我在Paul Arnold提到的那篇文章之后写的文章。
9udxz4iz3#
我会使用dbghelp符号API。如果您只需要有关PDB的信息,则可以使用chkmatch on archive.org,或者,只需将dll/exe加载到WinDbg中并使用
!sym noisy
、!lmi
或!chksym
。修复PDB以匹配是另一回事!chkmatch可以做一些工作,但不能使年龄差异匹配,它只能做时间戳和GUID签名。