共用方式為


PDB 檔 (C++)

更新:2007 年 11 月

這個主題適用於:

版本

Visual

Basic

C#

C++

Web Developer

Express 版

標題不適用於 標題不適用於 標題適用於 標題不適用於

Standard 版

標題不適用於

標題不適用於

標題適用於

標題不適用於

Pro/Team 版

標題不適用於 標題不適用於

標題適用於

標題不適用於

表格圖例:

標題適用於

套用

標題不適用於

不套用

預設會套用主題但隱藏命令

預設隱藏的命令。

程式資料庫 (PDB) 檔會保留偵錯和專案狀態資訊,以便您的程式進行偵錯組態的累加連結 (Incremental Link)。當您使用 /ZI 或 /Zi 建置時,就會建立 PDB 檔 (適用於 C/C++)。

在 Visual C++ 中,/Fd 選項會為編譯器所建立的 PDB 檔命名。當您使用精靈在 Visual Studio 中建立專案時,就會設定 /Fd 選項以建立名為 project.PDB 的 PDB。

如果您在使用 Makefile 建置 C/C++ 應用程式時,指定了 /ZI/Zi,但沒有指定 /Fd,那麼您在最後會得到兩個 PDB 檔:

  • VC80.PDB:(簡單地說,VCx0.PDB 的 x 代表 Visual C++ 的版本)。這個檔案會儲存各個 OBJ 檔的所有偵錯資訊,且其所在位置與專案 Makefile 的目錄位置相同。

  • project.PDB:這個檔案會儲存此.exe 檔的所有偵錯資訊。若是 C/C++,偵錯資訊會位於 \debug 子目錄中。

每次建立 OBJ 檔時,C/C++ 編譯器會將偵錯資訊合併到 VCx0.PBD。插入的資訊包括型別資訊,但是不包括符號資訊 (例如,函式定義)。因此,即使每個原始程式檔包含了常見的標頭檔 (例如,<windows.h>),這些標頭檔的 typedef 也只會儲存一次,而不會出現在每個 OBJ 檔。

連結器會建立包含專案 EXE 檔之偵錯資訊的 project.PDB。這個 project.PDB 包含了完整的偵錯資訊,包括函式原型,而不僅是在 VCx0.PDB 找到的類型資訊。這兩種 PDB 檔案都允許累加更新。連結器也會將路徑嵌入其建立的 .exe 或 .dll 檔中的 .pdb 檔。

Visual Studio 偵錯工具會使用 EXE 或 DLL 檔中 PDB 路徑找出 project.PDB 檔。如果偵錯工具在該位置找不到 PDB 檔案,或是路徑無效 (例如,專案已移至另一部電腦),偵錯工具就會搜尋包含 EXE 的路徑,也就是 [選項] 對話方塊 ([Debugging] 資料夾,[Symbols] 節點) 中指定的符號路徑。這個偵錯工具不會載入不符合偵錯之二進位檔的 PDB。

請參閱

概念

PDB 檔 (C# 和 Visual Basic)

其他資源

偵錯設定和準備