PDBRipper是一個實用程序,用于提取從PDB-文件的信息。
PDPRipper可以提?。?/h3>
枚舉
用戶定義類型(結構,工會...)
類型定義
pdb文件是什么?
.pdb文件,是VS生成的用于調試的符號文件(program database),保存著調試的信息。在VS的工程屬性,C/C++,調試信息格式,設置/Zi,那么VS就會在構建項目時創建PDB文件。
在這里要區分兩種情況:
1、構建靜態庫時,可以在工程屬性 –> C/C++ –> 輸出文件 –> 程序數據庫名 設置生成的pdb文件名稱,如果不指定,默認是生成為VCx0.pdb,這里x是VS版本號,例如用VS2005,就會生成VC80.pdb。這里就會產生一個疑問,編譯靜態庫時默認生成的.pdb文件名字都一樣,那引用這個靜態庫的項目最后能找到正確的.pdb文件嗎?答案是肯定的,因為VS會在生成的文件中嵌入 .pdb 文件的路徑。
舉個例子,在Project/ToolA下,構建了一個靜態庫ToolA.lib,對應生成一個vc80.pdb,同樣在在Project/ToolB下,構建了一個靜態庫ToolB.lib,對應生成一個vc80.pdb。然后最終的工程Work.exe同時鏈接了這兩個靜態庫.這時,生成Work.pdb的時候,就會在ToolA.lib中找到它對應的符號文件路徑Project/ToolA/vc80.pdb,以及ToolB.lib對應的符號文件路徑Project/ToolB/vc80.pdb,合并生成最終工程的Work.pdb。
2、構建可執行文件或動態庫,這種情況下,編譯器會生成一個.pdb文件,鏈接器會生成一個.pdb文件,編譯器生成的pdb文件可以在在工程屬性 –> C/C++ –> 輸出文件 –> 程序數據庫名 設置,鏈接器生成的.pdb文件可以在工程屬性 –> 鏈接器 –> 調試 –> 生成調試信息(設置Yes),生成程序數據庫名設置。