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