2012-11-14 37 views
2

調試C DLL文件I有一個單獨的Visual Studio 溶液用C語言編寫的DLL我用它在另一種解決方案;在一個控制檯C++項目中。在調試控制檯項目時,我步入一個DLL函數。無法步執行代碼而在Visual Studio 2012

然而,在頁面打開報告說There is no source code available for the current location與調用堆棧位置MyConsole.exe!_tailMerge_MyLibrary_dll()。我在控制檯項目中使用DLL文件的延遲加載。當顯示無源代碼頁時,我檢查輸出窗口並查找DLL行加載的符號。爲什麼Visual Studio 2012無法步入此DLL代碼?

+0

您的dll是否包含調試信息? – CCoder

+0

生成調試信息:是(/ DEBUG) –

+0

我並不確定,但聽起來VS能夠加載dll,但它不知道在哪裏(在您的機器上)找到源文件。該DLL包含它需要鏈接和編譯的二進制文件,但它沒有物理源文件。我會懷疑你需要將構成dll的文件導入到你的項目中,並將它指向這些文件,以便調試器能夠讓你「步入」它們。 – Mike

回答

0

它發生,與Visual Studio的問你,如果你有代碼外部項目打交道時。如果取消進程,請求的文件將被添加到解決方案中的列表中,並且它會記住不再詢問文件。

檢查Solution Property Pages > Debug Source Files。首先,確保你的文件是不是在別看這些源文件:,然後確保你在包含源代碼的目錄添加的源的位置。這應該有助於解決問題。

+0

我添加了dll源文件夾而沒有影響 –

+0

c#console項目沒有問題 –

+0

您是否爲您的DLL生成了PDB? – emartel

1

我有同樣的問題,下面解決了我的問題。我在主項目的屬性頁面上將「調試器類型」設置爲「混合」。我的主項目是託管代碼,而.dll是本地的。

相關問題