2011-07-23 47 views
1

我正在嘗試讀取PDB文件的頭文件,以便知道它是否與我的EXE文件相匹配。
有沒有一種很好的方式來讀取PDB文件的簽名(可能使用dbgHelp)?
我需要獲取PDB文件中標題的字段,以指示在哪個版本中創建了PDB。 謝謝:)在C++中讀取PDB頭文件

+0

是的,那是我的意思。我試着寫我自己的小調試器。 – Idov

+0

如果它是爲特定的BUILD生成的。 – Idov

+0

爲二進制文件生成的每個pdb文件都具有嵌入在二進制文件以及pdb文件中的guid。請看看DIA sdk的get_guid函數。 –

回答

1

我不相信Debug Help APIDebug Interface Access SDK提供訪問任何信息,可以解決您的問題。關於使用其中任何一種來檢測構建信息的唯一方法是檢查鏈接時包含的對象文件的路徑。

PDB文件確實包含有關在命令行上傳遞的用於編譯目標文件和鏈接(libs,dll's,exe's)的選項的信息,這可能是您正在查找的內容。不幸的是,我知道沒有記錄的方式來訪問它。它可能深藏在PDB文件中的其中一個表格中,但我無法找到任何訪問它的參考。

也就是說,如果您提供的信息是絕對必要的,並且您願意處理一些挫折,請查看PDB Parser by Sven Boris Schreiber。它包含許多有用的信息,雖然它可能不支持較新的PDB版本

+0

John Robbins的這篇博客文章也可能包含以下信息:http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must- know.aspx –