读取c++中的PDB头文件

Reading the PDB header in c++

本文关键字:文件 PDB 中的 c++ 读取      更新时间:2023-10-16

我正试图读取PDB文件的头,以了解它是否与我的EXE文件匹配。
是否有一种很好的方法来读取PDB文件的签名(可能使用dbgHelp)?
我需要获得在PDB文件头的字段,表明在其中构建的PDB被创建。谢谢:)

我不相信调试帮助API和调试接口访问SDK提供访问任何信息,将解决您的问题。使用这两种方法检测构建信息的唯一方法是检查链接期间包含的目标文件的路径。

PDB文件确实包含关于在编译对象文件和链接(lib, dll, exe)的命令行上传递的选项的信息,这可能是你正在寻找的。不幸的是,我知道没有文档访问它的方法。它可能深埋在PDB文件中可用的一个表中,但我无法找到访问它的任何参考。

也就是说,如果获得您所要求的信息是绝对必要的,并且您愿意处理一些挫折,请查看Sven Boris Schreiber编写的PDB Parser。它包含了很多有用的信息,尽管它可能不支持较新的PDB版本

您可以使用Pdb Inspector工具查看Pdb的GUID和其他基本详细信息。此工具使用调试接口访问(DIA)