VS“無法查找或打開PDB文件”是怎么回事?如何解決


有時候,我們使用 VS(Visual Studio)編譯程序時會出現“無法查找或打開PDB文件”的提示,並且此時程序會生成失敗,無法運行,如下圖所示:

 

 大家不要驚慌,出現這種提示並不是代碼寫錯了,而是編譯器設置的問題,改一下設置就 OK 了。

先說一下PDB文件是什么

當程序在 VS 上編譯時,程序所依賴的所有動態鏈接庫(dll 文件)也會被編譯,編譯過程中每個 dll 都會產生一個pdb文件,又稱為“符號文件”,是一個存儲數據的信息文件,其包含 dll 庫在編譯過程的某些調試信息,例如程序中所用到的全局變量、局部變量、函數名以及他們的入口地址等。

pdb 文件主要用於調試程序,多用於當VS中有多個項目,且項目之間互有依賴關系時,使用pdb文件調試程序,往往會事半功倍,初學者一般不會用到。

當使用VS 調試程序時,會默認加載你的程序以及程序依賴的dll庫產生的所有pdb文件,但是結果往往是VS自己找不到依賴庫的pdb文件,於是就提示給你“無法查找或打開pdb文件”。

如何修復這個錯誤

我們可以通過對 VS 做適當的設置,使之能夠查找到相應的 PDB 文件,具體步驟如下(這里我們以 VS2017 為例進行說明,其它版本的 VS 操作步驟也一樣)。

1) 選擇菜單欄中的“調試  --> 選項”,如下圖所示:


2) 彈出“選項”對話框后,選擇“調試 --> 常規”,在右側選項欄中勾選“啟用源服務器支持”(包含的 3 個子選項不用勾選),此時會彈出一個安全警報框,選擇“是”即可,如下圖所示:


3) 還是在“選項”對話框中,選擇“調試 --> 符號”,在右側選項欄中勾選“Microsoft符號服務器”,此時會彈出一個提示對話框,點擊“確定”即可。同時,對於緩存符號的目錄,選擇圖示中的目錄即可:


4) 確定之后,重新運行你的程序,首次運行時,由於編譯器會加載所有動態鏈接庫的pdb文件,可能會等到幾秒鍾。程序運行后,之前輸出窗口中的“無法查找或打開pdb文件”的提示不見了,如下圖所示:


如上圖所示,由於pdb文件,又名“符號文件”,所以“已加載符號”,也就是成功加載了動態鏈接庫對應的pdb文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM