2015-12-21 63 views
1

我在Windows 7下使用MSVC 2013編譯器,CDB調試器和Qt Creator/qmake。我剛剛發現我的項目之一的構建目錄是高達16 千兆字節。罪魁禍首是名爲「srv」的子目錄,其中包含各種.pdb文件。好奇的是,對於各種系統庫,如commctl32,ntdll,user32等,都有pdb文件。我真的需要爲這些系統文件生成pdb,還是可以關閉一些設置,或者是否一個錯誤?我不打算調試user32.dll,所以我看不到任何理由爲其生成調試信息。爲什麼我得到這麼多.pdb文件?

+0

聽起來像調試時從符號服務器拉出的文件的緩存目錄。即使您不直接調試這些模塊,這些符號也可用於生成堆棧跟蹤。我對QtCreator不太熟悉,但可能會有一個設置,以便您可以將這些文件緩存在單個全局位置,以便您的所有QtCreator項目都將使用相同的緩存而不是單獨的實例。如果它是一個緩存,你可以刪除它,但調試器可能會在需要時通過互聯網再次關閉它們。 –

+1

「我不打算調試user32.dll」不,但是您會計劃知道程序崩潰的user32函數,對不對?這就是這些文件的用途。沒有它們進行調試並不好玩。現代開發需要充足的磁盤空間 - 習慣它。 –

回答

4

沒有生成commctl32,ntdll,user32的pdb文件(因爲這些庫不是由您編譯的)。在調試應用程序以將內存地址解析爲函數名稱(即,準備可讀的堆棧跟蹤)時,會自動下載這些內容。

您可以在VS2013設置,調試,符號中進行配置。在那裏你可以禁用自動下載和/或更改放置文件的文件夾。假設這也可以被禁用/配置爲其他調試器。 「符號緩存」增長:無論何時安裝Windows更新,新庫都可能部署到您的計算機,並且在您的下一個調試會話中會下載新的符號。如果你有一個快速的互聯網連接,清空緩存沒有問題。

相關問題