debugging 如何从PDB文件获取GUID?

72qzrwbm  于 2022-11-14  发布在  其他
关注(0)|答案(3)|浏览(235)

有人知道如何从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,但没有喜悦...
非常感谢,
思顿。

yfwxisqw

yfwxisqw1#

有一个Code Project tool called PDB Inspector应该可以帮助你。或者如果你需要通过编程来完成这个任务,你可以调用:

IDiaDataSource::LoadDataFromPdb
IDiaDataSource::openSession
IDiaSession::get_global_scope
IDiaSymbol::get_guid
c8ib6hqw

c8ib6hqw2#

一个introduction到DIA以及它与DbgHelp的关系,还有一个C++示例。这基本上是我在Paul Arnold提到的那篇文章之后写的文章。

9udxz4iz

9udxz4iz3#

我会使用dbghelp符号API。如果您只需要有关PDB的信息,则可以使用chkmatch on archive.org,或者,只需将dll/exe加载到WinDbg中并使用!sym noisy!lmi!chksym
修复PDB以匹配是另一回事!chkmatch可以做一些工作,但不能使年龄差异匹配,它只能做时间戳和GUID签名。

相关问题