我写了一个C#应用程序,其中大部分工作是在C++后端完成的。现在我一直在积极地开发双方,并且后端的当前迭代在特定函数中抛出访问冲突。我该如何去调试呢? VS不会在本机代码中破坏异常或断点,也不会显示调用堆栈或本地代码的本地代码,即使这两个项目都内置在相同的解决方案中。我宁愿避免使用日志语句去回收所有我的本机代码。从托管调用时调试本机代码
6
A
回答
10
如果您打开混合模式调试(并重新编译您的项目),VS也会调试本机代码。
请参阅Microsoft的解释:http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx
1
使用Visual Studio你可以从你的本地C++项目调试器附加到正在运行的C#应用程序。
之前附加调试和运行C#应用程序在VS.
- 打开本地C++项目
确保您已配置为调试模式。然后重建您的本地 C++代码。
在你想破解的地方添加断点,并开始跳过 的代码。确保你已经将你的断点放置在C#应用程序调用的代码 中。
如果你的C#应用程序是您的解决方案, 在项目调试节点下的启动项目属性页确保 选中“启用本地代码调试”,然后重建整个 解决方案。
否则,您将需要重新编译引用 新编译的DLL的C#应用程序。运行该应用程序并将C++项目的VS调试器 附加到C#应用程序。
要做到这一点去调试选项卡 - >附加到进程 - >选择C#应用程序。
相关问题
- 1. 从托管代码调用本机API
- 2. 在调试托管代码时调试非托管代码
- 3. 调试托管的.NET代码从非托管C++调用
- 4. 从托管代码性能调用本机代码
- 5. 从托管.NET代码调用本机回调(当使用COM加载托管代码时)
- 6. 挑战运行时错误从托管代码调用本机代码时
- 7. 从非托管代码调用托管代码
- 8. 从托管代码调用非托管代码的性能
- 9. 如何从托管代码获取本机调用堆栈?
- 10. 从托管代码调用非托管DLL函数时出错
- 11. 从非托管调用托管代码时发生StackoverflowException
- 12. 调试托管代码和非托管代码
- 13. 从托管代码挂钩LoadLibrary调用
- 14. 本机C /托管C++调试
- 15. 非托管代码调用回调vb.net
- 16. 远程调试非托管代码
- 17. 如何从COM调用托管代码时调试未处理的异常?
- 18. 调试本机代码
- 19. 同时调试本机(ANSI C DLL)和托管(C#程序集)代码
- 20. 从C#托管代码调用win32 CreateProfile()管理代码
- 21. 调用从非托管代码调用的托管代码时,是否可以检查异常对象?
- 22. 从本机代码调用Java代码?
- 23. 从托管或产卵过程调用非托管代码
- 24. 调用从托管代码非托管方法
- 25. WinDbg - 调试混合x64托管/非托管代码
- 26. 如何从托管代码调试未发布的COM引用?
- 27. 从Windows CE上的本地代码调用托管程序集
- 28. 在调用CLR应用托管代码
- 29. 托管代码和非托管代码之间的调用代码
- 30. 使用COM互操作从非托管代码调用托管代理
哪个操作系统和VS版本? VS2008及更早版本不支持64位模式下的混合模式调试。 – 2010-12-04 16:13:44
@Steve:.net 4.0暗示VS 2010 – Vlad 2010-12-04 16:16:04