2

可能重複this question如何在VS2012中調試混合模式C++/CLI時顯示本機類型MFC應用程序

我有一個MFC項目使用/ clr開關和一些C++/CLI代碼來使用.Net組件。最初這是在VS2005上。

升級到VS2012 Update 2時,在調試過程中,沒有爲原生數據類型顯示值或類型。我瞭解到,在VS2010中引入了原生數據類型可視化(natvis)的新機制,並在VS2012中進行了擴展/增強。關於that page的信息,我未選中託管C++兼容模式C/C++編輯並繼續。之後,斷點被禁用並停止命中。使用「Only Managed」調試器,斷點被擊中,但沒有顯示任何值。

最後,我使用「混合」調試器,並使用__debugbreak()強制中斷。這導致只有當它們是本地汽車時才顯示整數值;並正確地選取了數據類型。但是,std::stringCString值未顯示,而是它們的類型顯示在值列中。同樣,不顯示指針,類成員或函數參數值,類型信息,未定義值或超出範圍顯示在值列中。

行爲在整個汽車,當地人和觀察窗口以及鼠標懸停在符號上都是一致的。

如何在VS2012混合模式C++/CLI MFC應用程序的調試過程中獲取本機數據類型以顯示其值。

我已閱讀this question並驗證所有符號都已加載到模塊窗口中。

顯然,Microsoft是aware of the issue,而即將到來的Update 3的CTP應該修復它。

此外,爲什麼我需要使用__debugbreak()

+0

@knockNrod - 我們嘗試使用VS2012和VS2012 Update1。調試速度太慢 - 每個F10需要1-2分鐘才能進入下一行。這是[已知](https://connect.microsoft.com/VisualStudio/feedback/details/751327/debugger-stepping-in-mixed-mode-application-is-very-very-slow)[問題](http ://connect.microsoft.com/VisualStudio/feedback/details/774026/debugger-hangs-in-managed-code-in-mixed-mode-c-app)與VS2012進行混合模式調試。 – 2013-04-27 08:06:42

+0

@Per Lundberg - 非常感謝。確認更新3 RC解決了慢速以及原生符號值。但是,調試器必須手動更改爲「僅限管理」,否則不會觸發斷點。在使用'__debugbreak()'時,不會顯示符號。 – 2013-05-14 12:07:33

回答

2

幾天前,微軟發佈了Visual Studio Service Pack 3的RC這可能有助於(安裝它自己現在)。這裏是鏈接:http://www.microsoft.com/en-us/download/details.aspx?id=38832

+0

可以確認,在調試器中顯示非託管變量現在可以工作,至少對我而言,安裝了上述內容之後。 – 2013-05-11 05:52:10

+0

謝謝Per。確認更新3 RC解決了慢速以及原生符號值。但是,調試器必須手動更改爲「僅限管理」,否則不會觸發斷點。在使用'__debugbreak()'時,不會顯示符號。 – 2013-05-14 12:05:51

+0

FWIW,SP3現已發佈(不再是RC)。 – 2013-07-29 05:25:14

0

重新安裝Visual Studio 2012,不應用Service Pack 2

相關問題