Visual studio 2012 如何在VS2012中为混合模式C+调试时显示本机类型+/CLI MFC应用程序

Visual studio 2012 如何在VS2012中为混合模式C+调试时显示本机类型+/CLI MFC应用程序,visual-studio-2012,mfc,c++-cli,visual-studio-debugging,mixed-mode,Visual Studio 2012,Mfc,C++ Cli,Visual Studio Debugging,Mixed Mode,可能的副本 我有一个MFC项目,它使用/clr开关和一些C++/CLI代码来使用.Net组件。最初这是在VS2005上 升级到VS2012 Update 2时,在调试期间,未显示本机数据类型的值或类型。我了解到,VS2010引入了一种新的本地数据类型可视化机制(natvis),并在VS2012中进行了扩展/增强。在信息之后,我没有检查托管C++兼容模式< /St>和 C/C++编辑并继续< /St>。在此之后,断点被禁用并停止被命中。使用“仅托管”调试器时,会命中断点,但未显示任何值 最后,我使

可能的副本

我有一个MFC项目,它使用/clr开关和一些C++/CLI代码来使用.Net组件。最初这是在VS2005上

升级到VS2012 Update 2时,在调试期间,未显示本机数据类型的值或类型。我了解到,VS2010引入了一种新的本地数据类型可视化机制(natvis),并在VS2012中进行了扩展/增强。在信息之后,我没有检查<强>托管C++兼容模式< /St>和<强> C/C++编辑并继续< /St>。在此之后,断点被禁用并停止被命中。使用“仅托管”调试器时,会命中断点,但未显示任何值

最后,我使用“混合”调试器并使用
\uu debugbreak()
强制中断。这导致仅当整数值为本地自动时才显示;并且正确地提取了数据类型。但是,
std::string
CString
值不显示,而是在值列中显示其类型。类似地,指针、类成员或函数参数值不显示,类型信息、未定义值或超出范围显示在值列中

这种行为在汽车、本地人、观察窗口以及鼠标悬停在符号上时是一致的

如何使本机数据类型在VS2012混合模式C++/CLI MFC应用程序调试期间显示其值

我已阅读并验证所有符号已加载到模块窗口中

很明显,微软是这样的,即将发布的CTP更新3应该会解决这个问题


此外,为什么我需要使用
\uu debugbreak()

重新安装Visual Studio 2012而不应用Service Pack 2。

几天前,Microsoft发布了一个Visual Studio Service Pack 3 RC,这可能会有所帮助(现在自己安装)。以下是链接:

@knockNrod-我们尝试仅使用VS2012和VS2012以及Update1。调试异常缓慢-每台F10需要1-2分钟才能进入下一行。这是VS2012用于混合模式调试的一个示例。@Per Lundberg-非常感谢。确认Update 3 RC解决了慢度和本机符号值问题。但是,调试器必须手动更改为“仅受管理”,否则不会命中断点。使用
\uuu debugbreak()
进行中断时,不会显示符号。您可以确认,在安装了上述工具后,在调试器中显示非托管变量现在可以工作了,至少对我来说是这样。谢谢。确认Update 3 RC解决了慢度和本机符号值问题。但是,调试器必须手动更改为“仅受管理”,否则不会命中断点。使用
\uuu debugbreak()
进行中断时,不会显示符号。FWIW,SP3现在已释放(不再是RC)。