標籤:
Microsoft Visual Studio PDB:調試的符號檔案,程式資料庫 (PDB) 檔案儲存著調試和項目狀態資訊,使用這些資訊可以對程式的調試配置;
當以 /ZI 或 /Zi(用於 C/C++)產生時,將建立一個 PDB 檔案。
在 Visual C++ 中,/Fd 選項用於命名由編譯器建立的PDB 檔案。
當使用嚮導在Visual Studio 中建立項目時,/Fd 選項被設定為建立一個名為 project.PDB 的 PDB。
如果使用組建檔案建立 C/C++ 應用程式,並指定 /ZI 或 /Zi 而不指定 /Fd 時,則最終將產生兩個 PDB 檔案:*VC80.PDB (更籠統地說就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)
該檔案儲存體各個 OBJ 檔案的所有調試資訊並與項目組建檔案駐留在同一個目錄中。*project.PDB 該檔案儲存體 .exe 檔的所有調試資訊。
對於C/C++,它駐留在 \debug 子目錄中。每當建立 OBJ 檔案時,C/C++ 編譯器都將調試資訊合并到 VCx0.PDB 中。插入的資訊包括類型資訊,但不包括函數定義等符號資訊。因此,即使每個源檔案都包含公用標頭檔(如 <windows.h>),這些標頭檔中的 typedef 也只儲存一次,而不是在每個 OBJ 檔案中都存在。連結器將建立 project.PDB,它包含項目的 EXE 檔案的調試資訊。project.PDB檔案包含完整的調試資訊(包括函數原型),而不僅僅是在 VCx0.PDB 中找到的類型資訊。這兩個 PDB 檔案都允許累加式更新。連結器還在其建立的 .exe 或 .DLL 檔案中嵌入 .pdb 檔案的路徑。
Visual Studio 調試器使用 EXE 或 DLL 檔案中的PDB 路徑尋找 project.PDB 檔案。
如果調試器在該位置無法找到 PDB 檔案或者如果路徑無效(例如,如果項目被移動到了另一台電腦上),調試器將搜尋包含 EXE 的路徑,即在“選項”對話方塊(“調試”檔案夾,“符號”節點)中指定的符號路徑。
調試器不會載入與所調試的二進位不匹配的 PDB。
Microsoft Visual Studio PDB檔案相關事宜