程式資料庫 (PDB) 檔案儲存著除錯和專案狀態資訊,使用這些資訊可以對程式的除錯配置進行增量連結。當用 /ZI 或 /Zi 編譯 C/C++ 程式時或用 /debug 編譯 Visual Basic/C#/JScript .NET 程式時將建立 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 中。插入的資訊包括型別資訊,但不包括函式定義等符號資訊。因此,即使每個原始檔都包含公共標頭檔案(如
連結器將建立 project.PDB,它包含專案的 EXE 檔案的除錯資訊。project.PDB 包含完整的除錯資訊(包括函式原型),而不僅僅是 VCx0.PDB 中的型別資訊。這兩個 PDB 檔案都允許增量更新。
Visual Studio 偵錯程式使用由連結器直接建立的 project.PDB 檔案並將此 PDB 的絕對路徑嵌入到 EXE 或 DLL 檔案中。如果偵錯程式在該位置無法找到 PDB 檔案或者如果路徑無效(例如,如果專案被移動到了另一臺計算機上),偵錯程式將搜尋包含 EXE 的路徑,即在解決方案的“屬性頁”中指定的“符號路徑”(“除錯符號檔案”頁 ->“通用屬性”資料夾)。偵錯程式不會載入與所除錯的二進位制不匹配的 PDB。
摟主看看幫助先,自己找答案也是很有樂趣的。
程式資料庫 (PDB) 檔案儲存著除錯和專案狀態資訊,使用這些資訊可以對程式的除錯配置進行增量連結。當用 /ZI 或 /Zi 編譯 C/C++ 程式時或用 /debug 編譯 Visual Basic/C#/JScript .NET 程式時將建立 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 中。插入的資訊包括型別資訊,但不包括函式定義等符號資訊。因此,即使每個原始檔都包含公共標頭檔案(如
連結器將建立 project.PDB,它包含專案的 EXE 檔案的除錯資訊。project.PDB 包含完整的除錯資訊(包括函式原型),而不僅僅是 VCx0.PDB 中的型別資訊。這兩個 PDB 檔案都允許增量更新。
Visual Studio 偵錯程式使用由連結器直接建立的 project.PDB 檔案並將此 PDB 的絕對路徑嵌入到 EXE 或 DLL 檔案中。如果偵錯程式在該位置無法找到 PDB 檔案或者如果路徑無效(例如,如果專案被移動到了另一臺計算機上),偵錯程式將搜尋包含 EXE 的路徑,即在解決方案的“屬性頁”中指定的“符號路徑”(“除錯符號檔案”頁 ->“通用屬性”資料夾)。偵錯程式不會載入與所除錯的二進位制不匹配的 PDB。
摟主看看幫助先,自己找答案也是很有樂趣的。