在c ++中读取PDB头

时间:2011-07-23 15:34:56

标签: c++ windows signature pdb-files

我正在尝试读取PDB文件的标题,以便知道它是否与我的EXE文件匹配 有没有一种很好的方法来读取PDB文件的签名(可能使用dbgHelp)? 我需要获取PDB文件中标题的字段,以指示PDB在哪个构建中的创建。 谢谢:))

2 个答案:

答案 0 :(得分:1)

我不相信Debug Help APIDebug Interface Access SDK都可以访问任何可以解决您问题的信息。关于使用其中任何一种来检测构建信息的唯一方法是检查链接时间内包含的目标文件的路径。

PDB文件确实包含有关编译目标文件和链接(libs,dll,exe)的命令行传递的选项的信息,这可能就是您要查找的内容。不幸的是,我知道没有记录的方式来访问它。它可能深埋在PDB文件中的一个表中,但我无法找到任何访问它的参考。

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

答案 1 :(得分:0)

您可以使用the Pdb Inspector tool查看您的PDB的GUID和其他基本详细信息。此工具使用Debug Interface Access (DIA)