在本机C ++混合模式下调试,托管c ++ cli和c#解决方案
我有一个多线程项目即时通讯工具,启动项目设置为运行我的用户界面的ac#项目。 然后有一系列底层c ++本地项目,它们通过托管的C ++ / CLI项目连接到C#。 我已经启用了c#启动项目“启用非托管调试”,当我尝试调试本机代码时,我能够达到我设置的中断点。 但是,在我尝试再次运行并尝试再次触发一个中断点后,它会挂起。 例如,如果我有一个循环,我会在每次迭代时尝试打开它,在第二次迭代之后,程序会挂起,我必须强制退出。 我在Visual Studio 2010中工作。调试开始证明这个速度不是很有用,有什么办法可以排除这个问题吗?
当我想调试本机代码以及C ++ / CLI时,我的确如下所示:
Allow unsafe code
和“项目属性的调试”选项卡中的“ Enable unmanaged code debugging
Mixed
我们在调试复杂的混合代码应用程序时也遇到了问题,并发现Visual Studio在这些情况下并不可靠。 我的建议是:
如果您试图调试一段本地代码,请尝试使用本地项目作为调试器启动应用程序。 在项目设置下,“调试”选项卡将“调试器类型”设置为“混合”,对我们来说有时会有所帮助(例如,本地项目可能是DLL,只需在项目设置中将主Exe设置为调试目标)。
使用WinDbg,可以更可靠地调试托管/非托管混合代码应用程序;
当我试图从托管中进入非托管代码时,我遇到了同样的问题,所以我摆脱了托管端的所有断点,并执行了以下操作:
1)通过文件 - >打开 - >文件(即我的source.cpp)打开你的非托管源文件。
2)在那里设置一个断点
3)启动您的托管代码调试(播放按钮)
它应该直接分解成你的未被管理的代码......至少它适用于我...
链接地址: http://www.djcxy.com/p/57037.html上一篇: debugging in mixed mode with native C++, managed c++ cli, and c# solution
下一篇: Change C++/CLI project to another framework than 4.0 with vs2010