2010-03-25 188 views
20

我正在處理的.NET 3.5應用程序包含大量不同的解決方案。其中一些解決方案由託管代碼(C#)組成,其他解決方案包含非託管代碼(C++)。用C#編寫的方法與用C++編寫的方法進行通信。我試圖追蹤這些不同功能之間的依賴關係,並且認爲在包含我的C++函數的解決方案上設置了斷點。其中一個C#解決方案具有啓動項目。我在調試模式下運行這個解決方案,期望在我的非託管代碼中的斷點將被擊中,但沒有真正發生。有人能指導我完成使用Visual Studio IDE調試混合應用程序的過程嗎?在調試託管代碼時調試非託管代碼

感謝

回答

26

默認情況下,託管項目纔會開始啓用託管調試調試器。它不認爲在同一解決方案中存在未管理的項目。爲了進行調試,您需要明確啓用非託管代碼調試。

  • 右鍵單擊該項目,並選擇屬性
  • 轉到調試選項卡
  • 選中「啓用非託管代碼調試」
+0

謝謝賈裏德。如果我的非託管代碼在一個解決方案中,並且我的管理代碼在另一個Visual Studio解決方案中,那麼是否需要從兩個解決方案中運行調試器才能達到斷點。我做了你的建議,但我仍然無法達到斷點。 – 2010-03-25 22:55:38

+0

您正在編譯C++類的調試版本? – iain 2010-03-25 23:14:34

+5

@sc_ray:如果您附加到進程:在附加到進程框中,單擊選擇並檢查「託管」和「本地」框。 – 2010-03-26 13:58:34

3
  1. 轉到管理項目屬性。
  2. 右鍵單擊它並轉到調試選項卡。
  3. 在該部分下有一個名爲enable debugger的部分。
  4. 勾選「啓用本地代碼調試」選項

,那麼你就可以調試本地代碼。祝你好運 !!!

請參閱下面附加的圖片用紅色矩形突出顯示。

enter image description here