我在MSVS 2013中有一個C++項目,這會在調試時導致問題:每當我運行一個調試會話時,出現一個消息框,顯示「沒有調試信息 - 'xy.exe'的調試信息找不到或不匹配,無法找到PDB文件,是否要繼續調試?「這是一個普遍的問題,這個問題曾多次提出過,但是,迄今爲止我發現的答案都不適用於我的案例。「沒有調試信息」,但它就在那裏
- 項目屬性 - >配置屬性 - > C/C++ - > 優化 - >優化是禁用
- 項目屬性 - >配置屬性 - >鏈接器 - >調試 - >生成調試信息被打開
- 路徑和文件名是正確的; Project Properties - > Configuration Properties - > Linker - > Debugging - > Generate Program Database File is「$(OutDir)$(TargetName).pdb」(Output File is「$(OutDir)$(TargetName)$(TargetExt)」,所以這裏也沒有配置錯誤)
- 我試着手動刪除文件,重新啓動Visual Studio,清理和重建。從文件時間戳我看到它確實是剛剛創建的PDB文件,並且exe和pdb都被構建到相同的文件夾並被正確命名。
- 有人建議重新檢查任務管理器,看看devenv.exe是否仍在後臺運行 - 的確如此。我殺了它,刪除了PDB文件,重新啓動,清理,重建,沒有運氣。
- 我將啓動項目切換到另外一個,並作爲海報建議[1]。沒有運氣。
- 當主項目的本地PDB文件與整個可執行文件的最終PDB文件具有相同的名稱時,有人報告有此問題[2]。這裏不是這種情況。
- 當我打開模塊窗口[3]時,我看到對於我的exe,在「符號狀態」列中,它顯示「無法找到或打開PDB」文件。當我嘗試右鍵單擊 - >加載符號時,我發現它們就在那裏(例如xy.exe的xy.pdb)。當我選擇它們時,消息框會顯示「在此文件夾中找不到加工符號文件」。
有趣的是,該解決方案中沒有任何項目可以工作。但是,其他項目沒有任何問題。我嘗試將項目屬性中的每個設置與可以工作的設置進行比較,但我找不到任何區別。
還有什麼想法?
[1] https://stackoverflow.com/a/15378106/4508058
[2] https://stackoverflow.com/a/21640745/4508058
[3] https://stackoverflow.com/a/540599/4508058
當你在調試器中啓動你的應用程序(只是忽略你目前沒有調試信息),你的'輸出窗口' ?其中一行應該說「加載whatever.exe」,以及是否可以找到調試信息的狀態。請注意正在加載的完整路徑,並確保它是正在運行的正確可執行文件。 – PaulMcKenzie
您的可執行文件是否以不同的用戶身份提升或運行?這聽起來像調試器/可執行文件*真的無法打開* pdb文件,這聽起來像一個文件/目錄權限問題給我。 –
@PaulMcKenzie:謝謝。它寫道「無法找到或打開PDB文件」。二進制路徑是正確的。 – iko79