簡體   English   中英

什么是 .PDB 文件?

[英]What is a PDB file?

什么是 PDB 文件以及如何在重建解決方案時將其從發布文件夾中排除?

PDB 文件包含供調試器使用的信息。 無論如何,發布版本中的信息比調試版本中的信息少。 但是,如果您根本不想生成它,請轉到項目的構建屬性,選擇發布配置,單擊“高級...”並在“調試信息”下選擇“無”。

我最初問自己這個問題“我需要將 PDB 文件部署到我客戶的機器上嗎? ”,在閱讀了這篇文章后,我決定排除該文件。

一切正常,直到今天,當我試圖弄清楚為什么包含Exception.StackTrace的消息框缺少文件和行號信息時 - 對異常進行故障排除所必需的。 我重新閱讀了這篇文章,發現了關鍵信息:雖然 PDB 不是運行應用程序所必需的,但文件和行號必須存在於StackTrace字符串中。 我將 PDB 文件包含在可執行文件夾中,現在一切正常。

PDB是ATAASE對程序-調試d的簡稱。 顧名思義,它是一個存儲庫(持久存儲,如數據庫),用於維護在調試模式下運行程序所需的信息。 它包含您調試代碼(在 Visual Studio 中)所需的許多重要信息,例如在 Visual Studio 中您希望調試器中斷的位置放置斷點。

這就是為什么如果從調試目錄中刪除*.pdb文件,Visual Studio 無法命中斷點的原因。 Visual Studio 調試器還可以告訴您堆棧跟蹤中發生異常的代碼文件的確切行號。 它只能在*.pdb文件的幫助下*.pdb 因此,PDB 文件對於調試目的非常有幫助。

一般不建議排除*.pdb文件的生成。 從生產發布的角度來看,您應該做的是創建 PDB 文件,但不要在產品安裝程序中將它們發送到客戶站點。 將所有生成的 PDB 文件保存在符號服務器上,以便將來在需要時使用/引用。 這在您調試進程崩潰問題的場景中特別重要。 在分析故障轉儲文件時,如果在構建過程中創建的原始*.pdb文件沒有保留,那么 Visual Studio 將無法確定導致崩潰的確切代碼行

如果您仍然想為任何版本完全禁用*.pdb文件的生成,請轉到項目的屬性 -> 構建選項卡 -> 單擊高級按鈕 -> 從“調試信息”下拉框中選擇none -> 按確定如下面的快照所示。

無 C# 項目的調試信息設置

注意:必須為“調試”和“發布”構建配置單獨完成此設置。

PDB 文件包含調試器使用的信息。 它不需要運行您的應用程序,也不需要包含在您的發布版本中。

您可以禁止在 Visual Studio 中創建 pdb 文件。 如果您是從命令行或腳本構建,則省略/Debug開關。

程序調試數據庫文件 (pdb) 是 Microsoft 用於存儲調試信息的文件格式。

當您使用 Visual Studio 或命令提示符構建項目時,編譯器會創建這些符號文件。

檢查Microsoft Docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM