2012-01-27 190 views
7

我已經指定2010年內的符號(pdb)文件,以便它正確加載,但我得到No source available錯誤和Browse to Find Source Code灰顯。有誰知道我可以如何指定源代碼目錄或查看PDB內部找出它的位置?visual studio 2010 C++調試符號加載但無法找到源代碼

編輯:我的DLL被外部程序調用。錯誤發生在我的DLL裏面,所以我有源代碼。當發生錯誤時,我單擊調試,pdb符號被加載,但不是源。

+1

[PDB(http://msdn.microsoft.com/en-us/library/yd4f8bd1(V = vs.71)的.aspx)文件保持用於.exe文件或調試和項目信息.obj文件。我懷疑你可以「看看pdb內部找出源代碼目錄在哪裏」。 – LihO 2012-01-27 16:49:51

+0

我可以問你實際上想做什麼嗎? – LihO 2012-01-27 17:12:51

+0

@LihO對不起,如果不清楚 - 我已經更新了這個問題。謝謝。 – 2012-01-27 17:41:57

回答

4

如果從它的構建目錄中移動的DLL,然後調試器是不太可能能夠找到源代碼文件本身。您可以做的第一件事是在解決方案資源管理器窗口中的屬性,通用屬性,調試源文件中右鍵單擊解決方案根節點,並將路徑添加到DLL項目源目錄中。

方式二:在調試器會提示你需要找到一個源代碼文件的第一次。如果您在該對話框中單擊取消,則當您不知道它真正要求的內容時,通常會執行此操作,IDE將會記住您的選擇並且不會再提示您。通過刪除或重命名解決方案目錄中隱藏的.suo文件來修復此問題。

+0

我有類似的問題。我正在調試一個應用程序,並且無法步入另一個模塊(DLL)中定義的函數。 *模塊窗口*報告爲該DLL加載了這些符號,但IDE不會進入該函數。我已經設法進入*反彙編模式,但是我不能切換回源代碼(選項*轉到源代碼*是灰顯的)。自編譯以來,我還沒有移動源代碼。我試圖刪除.suo文件並設置調試源文件 - 沒有幫助。有任何想法嗎? – 2012-06-03 19:26:13

+0

我對可執行文件有類似的問題,但尚未移動。 「輸出」窗口顯示符號已加載,但它說源不可用。它可以選擇瀏覽源代碼或進行反彙編。源代碼選項變灰。如果我手動打開源文件並嘗試設置斷點,則會顯示一個空心圓圈以指示模塊未加載。只適用於某些解決方案。很奇怪。 – 2014-04-02 17:44:56

1

從我瞭解你只是想調試你的程序,你必須在DLL的形式。問題是,外部程序使用這個DLL,你從彈出後發生錯誤的窗口中單擊「調試」。

我假設你想在Visual Studio中打開你的項目,然後按Ctrl + Alt + P打開「附加到進程」窗口,你應該選擇使用這個DLL的進程(iexplore.exe或者你正在工作的任何東西與),以便您可以在那裏切換一些斷點,並在之前查看發生了什麼錯誤。

1

通過@Hans帕桑特的破解工作,但實際上,有實現這一官方的方法:右鍵單擊您的解決方案在解決方案資源管理器,選擇屬性/通用屬性/調試源文件。當提示輸入源路徑時,您應該能夠查看並編輯您之前選擇「取消」的所有文件的列表。

enter image description here

相關問題