2012-11-14 68 views
2

我有一個Delphi應用程序,它加載了一些我想調試的.NET程序集。我不想調試Delphi代碼,只是.NET程序集。我無法調試在VS 2012中運行.NET程序集的本地代碼

在VS 2010中,我所要做的就是將我的.NET代碼的輸出目錄指向Delphi可執行文件夾,並將Start external program設置爲指向可執行文件路徑。當我點擊F5時,它會自動啓動Delphi代碼,加載模塊並準備調試。

現在我遷移到VS 2012.我也這樣做,但調試不起作用。該過程開始並且它被正確連接,但模塊窗口完全是空的。沒有符號加載。我無法調試任何東西。

有什麼特別的我必須做,才能使其在VS 2012中工作?

+0

您是否已啓用非託管代碼調試? – 2012-11-14 20:00:59

+0

@ jdv-JandeVaan「未啓用非託管代碼調試」未標記。我以爲是在那裏讓我調試Delphi代碼本身。我要讓它看到會發生什麼 –

+0

@ jdv-JandeVaan現在模塊窗口中充滿了很多模塊。但我想調試的特定.NET模塊顯示「符號文件中沒有本地符號」,我的斷點標記爲「沒有符號已加載」 –

回答

3

我的確和你的場景一樣(希望不會太晚)。

問題在於,在「附加過程」中,當您啓動外部程序時,由於某種原因,默認調試器的版本爲4. 要做到:File> Add> Existing Project,並添加非託管程序的基本EXE文件。它將顯示爲單個文件項目。右鍵單擊它並選擇「設置爲啓動項目」。再次右鍵單擊屬性。設置調試器類型:託管(v3.5,v3.0,v2.0)。

就是這樣,調試器現在會加載正確的版本。我很積極,這將工作得很好。

+1

我永遠不會想到在我的解決方案中將本機可執行文件添加爲項目。謝謝! –

+1

這太棒了!非常感謝你!它爲我工作。我想知道,你是如何設法解決這個問題的。 – Max

+0

運氣很好,堅持不懈,據我回憶:) – ChrisK

1

我看到完全相同的問題。使用.NET 3.5管理單元運行MMC.exe。升級到VS2012之前調試良好,現在升級後說它沒有加載本機符號,斷點也不起作用。 @ jdv-JandeVaan提示是我需要前進的。我需要將調試器設置爲使用.NET 3.5。我能找到的唯一方法是在Attach to Process ...對話框中選擇.NET 3.5。不方便,但它的作品。

相關問題