程序數(shù)據(jù)庫 (PDB) 文件保存著調(diào)試和項目狀態(tài)信息,使用這些信息可以對程序的調(diào)試配置進(jìn)行增量鏈接。 在使用 /debug 生成時,會創(chuàng)建一個 PDB 文件。 可以使用 /debug:full 或 /debug:pdbonly 生成應(yīng)用程序。 使用 /debug:full 生成將產(chǎn)生可調(diào)試的代碼。 使用 /debug:pdbonly 生成將產(chǎn)生 PDB,但是不會產(chǎn)生通知 JIT 編譯器調(diào)試信息可用的 DebuggableAttribute。 如果您想為不希望其成為可調(diào)試的發(fā)布版本生成 PDB,請使用 /debug:pdbonly。 有關(guān)更多信息,請參見 /debug (C# 編譯器選項)或 /debug (Visual Basic)。
Visual Studio 調(diào)試器使用 EXE 或 DLL 文件中的 PDB 路徑查找 project.pdb 文件。 如果調(diào)試器無法在該位置找到 PDB 文件,或者該路徑無效,調(diào)試器將先搜索包含 EXE 的路徑,然后搜索“選項”對話框中指定的符號路徑。 該路徑通常是“符號”節(jié)點中的“調(diào)試”文件夾。 如果調(diào)試器無法找到 .PDB 文件,則顯示“查找符號”對話框,這將允許您搜索符號或向搜索路徑添加其他位置。
PDB
英文全稱:Program Database File
中文全稱:程序數(shù)據(jù)庫 文件
問:Debug里有pdb,Release里也有pdb,他們有什么不同呢?為什么很多人都不喜歡pdb,欲除之而后快?
答:
Debug里的PDB是full,保存著調(diào)試和項目狀態(tài)信息、有斷言、堆棧檢查等代碼。
Release 里的PDB是pdb-only,基本上:出什么錯了+錯誤在哪行。
因為很多人把PDB理解成:調(diào)試文件、Program Debug Database、會泄露代碼機密,所以想將其刪除,那只要在VS的 項目-->生成-->高級-->調(diào)試信息-->None便可
重要事項
調(diào)試器只會為二進(jìn)制文件加載與該二進(jìn)制文件生成之時所創(chuàng)建的 PDB 完全相符的 PDB。 就是說,該 PDB 必須是原 PDB 或其副本。 因為編譯器在創(chuàng)建二進(jìn)制文件時會考慮多種因素,所以,即使代碼自身沒有變化,二進(jìn)制文件的實際布局也可能會有變化。