一起调试托管和非托管代码

时间:2011-05-29 11:04:29

标签: c# c++ debugging unmanaged managed

我的主要启动项目是c ++。该解决方案还涉及托管的c#代码。 当我调试时 - 我只在非托管部分上有断点(在托管断点上它声明:“断点当前不会被命中。无效的文件行”

我检查了引用,发现那里有dll和pdb。

它可能是什么?

4 个答案:

答案 0 :(得分:6)

如何设置混合模式调试 http://msdn.microsoft.com/en-us/library/kbaht4dh(v=vs.100).aspx

不要错过底部的链接。

答案 1 :(得分:1)

如果像我一样,您正在尝试从本机C ++项目调试C ++ / CLI(即您在单个文件上设置/ CLR),并且它永远不会遇到断点而无法进入。好吧,我的朋友们,在VS2015中去了

  

工具 - >选项 - >调试 - >常规

并勾选出一个小方框:

  

启用.NET Framework源步骤

我相信你还需要将它设置为混合模式调试以上的答案,但仅此对我来说还不够。选中该框后,我可以从我的非托管C ++“进入”托管代码......这里有一些疯狂的技术......

答案 2 :(得分:0)

您必须启用混合模式调试。我不记得那是什么,随便。

答案 3 :(得分:0)

我在混合模式调试方面遇到了很多问题。实际上,有些程序变得不稳定(主要针对我的Excel互操作),你不能再编辑和继续了。

同时调试托管和非托管模式的一个好方法是设置一个新的虚拟项目,它将非托管调试器附加到您的应用程序。您可以使用旧项目调试托管代码,在需要调试本机代码时将其分离并附加本机调试器。这样,您还可以编辑并继续使用这两个代码。

有关设置的说明是there