我在Windows 7下使用MSVC 2013編譯器,CDB調試器和Qt Creator/qmake。我剛剛發現我的項目之一的構建目錄是高達16 千兆字節。罪魁禍首是名爲「srv」的子目錄,其中包含各種.pdb文件。好奇的是,對於各種系統庫,如commctl32,ntdll,user32等,都有pdb文件。我真的需要爲這些系統文件生成pdb,還是可以關閉一些設置,或者是否一個錯誤?我不打算調試user32.dll,所以我看不到任何理由爲其生成調試信息。爲什麼我得到這麼多.pdb文件?
1
A
回答
4
沒有生成commctl32,ntdll,user32的pdb文件(因爲這些庫不是由您編譯的)。在調試應用程序以將內存地址解析爲函數名稱(即,準備可讀的堆棧跟蹤)時,會自動下載這些內容。
您可以在VS2013設置,調試,符號中進行配置。在那裏你可以禁用自動下載和/或更改放置文件的文件夾。假設這也可以被禁用/配置爲其他調試器。 「符號緩存」增長:無論何時安裝Windows更新,新庫都可能部署到您的計算機,並且在您的下一個調試會話中會下載新的符號。如果你有一個快速的互聯網連接,清空緩存沒有問題。
相關問題
- 1. 爲什麼我得到這個錯誤我app文件
- 2. 爲什麼我得到這麼多br標籤
- 3. 爲什麼我得到這麼多的NSUserDefaultsDidChangeNotification
- 4. HTML5樣板爲什麼我得到這麼多的CSS錯誤
- 5. 什麼是PDB文件?
- 6. 版本生成.pdb文件,爲什麼?
- 7. 爲什麼我得到這個ClassCastException(Android)?
- 8. 爲什麼我得到這個NoMethodError
- 9. 爲什麼我得到這個錯誤?
- 10. 爲什麼我會得到這個StackOverFlowException
- 11. 爲什麼我得到這個NoSuchProviderException
- 12. 爲什麼我在這裏得到UnicodeDecodeError?
- 13. 爲什麼我得到這個錯誤
- 14. 爲什麼我得到這個nhibernate NonUniqueObjectException?
- 15. 爲什麼我得到這個ClassCastException?
- 16. 爲什麼我得到這個LineUnavailableException?
- 17. 爲什麼我會得到這個ValueError?
- 18. 爲什麼我在這裏得到StackOverflowError?
- 19. 爲什麼我得到這個追溯?
- 20. 爲什麼我得到這個錯誤?
- 21. 爲什麼我得到這個錯誤?
- 22. 爲什麼我在這裏得到「ArrayIndexOutOfBoundsException」?
- 23. 爲什麼我得到這個結果?
- 24. 爲什麼我得到這個錯誤?
- 25. 爲什麼我得到這個NullReferenceException?
- 26. 爲什麼我得到這個錯誤?
- 27. 爲什麼我在這裏得到IndexOutOfBoundsException?
- 28. 爲什麼我得到這個java.lang.NumberFormatException?
- 29. 爲什麼我在這裏得到java.lang.StackOverflowError?
- 30. 爲什麼我得到這個JspException?
聽起來像調試時從符號服務器拉出的文件的緩存目錄。即使您不直接調試這些模塊,這些符號也可用於生成堆棧跟蹤。我對QtCreator不太熟悉,但可能會有一個設置,以便您可以將這些文件緩存在單個全局位置,以便您的所有QtCreator項目都將使用相同的緩存而不是單獨的實例。如果它是一個緩存,你可以刪除它,但調試器可能會在需要時通過互聯網再次關閉它們。 –
「我不打算調試user32.dll」不,但是您會計劃知道程序崩潰的user32函數,對不對?這就是這些文件的用途。沒有它們進行調試並不好玩。現代開發需要充足的磁盤空間 - 習慣它。 –