我编写了一个C#应用程序,其中大部分工作都是在C ++后端完成的。现在我一直在积极开发双方,后端的当前迭代会在特定函数中引发访问冲突。我怎么去调试呢? VS不会破坏本机代码中的异常或断点,也不会显示本机代码的调用堆栈或本地代码,即使这两个项目都是在同一解决方案中构建的。我宁愿避免使用日志语句返回并丢弃所有本机代码。
答案 0 :(得分:12)
如果您打开混合模式调试(并重新编译项目),VS也会调试本机代码。
请参阅Microsoft的解释:http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx
答案 1 :(得分:3)
答案 2 :(得分:2)
使用Visual Studio ,您可以将调试器从原生C ++项目附加到正在运行的C#应用程序。
在附加调试器并运行C#应用程序之前
- 在VS中打开您的本机C ++项目。
确保将您配置为调试模式。然后重建你的本地人 C ++代码。
在您想要破解的位置添加断点并开始单步执行 代码。确保已将断点放在代码中 C#应用程序调用它。
- 醇>
如果您的C#应用程序是您的解决方案的启动项目, 在项目属性页面的Debug节点下确保 检查“启用本机代码调试”,然后重建整个 溶液
否则你需要重建引用它的C#应用程序 新编译的DLL。运行该应用程序并附加VS调试器 C#项目的C ++应用程序 要执行此操作,请转到“调试”选项卡 - >附加到流程 - >选择C#应用程序。