pdb文件是什麽?
在 Visual C++ 中,/Fd 選項用於命名由編譯器創建的 PDB 文件。當在 Visual Studio 中使用向導創建項目時,/Fd 選項被設置為創建名為 project.PDB 的 PDB 文件。
如果使用生成文件創建 C/C++ 應用程序,並指定 /ZI 或 /Zi 而不指定 /Fd 時,則最終將生成兩個 PDB 文件:
VC70.PDB (更籠統地說就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)該文件存儲各個 OBJ 文件的所有調試信息並與項目生成文件駐留在同壹個目錄中。
project.PDB 該文件存儲 .exe 文件的所有調試信息。對於本機代碼,它駐留在 \debug 子目錄中。對於托管代碼,它駐留在 \WINDEBUG 子目錄中。
每當創建 OBJ 文件時,C/C++ 編譯器都將調試信息合並到 VCx0.PBD 中。插入的信息包括類型信息,但不包括函數定義等符號信息。因此,即使每個源文件都包含公***頭文件(如 <windows.h>),這些頭文件中的 typedef 也只存儲壹次,而不是在每個 OBJ 文件中都存在。
鏈接器將創建 project.PDB,它包含項目的 EXE 文件的調試信息。project.PDB 包含完整的調試信息(包括函數原型),而不僅僅是 VCx0.PDB 中的類型信息。這兩個 PDB 文件都允許增量更新。
Visual Studio 調試器使用由鏈接器直接創建的 project.PDB 文件並將此 PDB 的絕對路徑嵌入到 EXE 或 DLL 文件中。如果調試器在該位置無法找到 PDB 文件或者如果路徑無效(例如,如果項目被移動到了另壹臺計算機上),調試器將搜索包含 EXE 的路徑,即在解決方案的“屬性頁”中指定的“符號路徑”(“調試符號文件”頁 ->“通用屬性”文件夾)。調試器不會加載與所調試的二進制不匹配的 PDB。
摟主看看幫助先,自己找答案也是很有樂趣的。