调试托管代码时调试非托管代码

sc_*_*ray 20 c# c++ debugging visual-studio-2008 visual-studio

我正在研究的.NET 3.5应用程序包含许多不同的解决方案.其中一些解决方案由托管代码(C#)组成,其他解决方案包含非托管代码(C++).用C#编写的方法与用C++编写的方法进行通信.我试图追踪这些各种函数之间的依赖关系,我想在包含我的C++函数的解决方案上设置断点.其中一个C#解决方案有启动项目.我在调试模式下运行此解决方案,期望我的非托管代码中的断点将被命中,但没有真正发生.有人可以指导我使用Visual Studio IDE调试混合应用程序的过程吗?

谢谢

Jar*_*Par 26

默认情况下,托管项目仅在启用托管调试的情况下启动调试器.它不认为同一解决方案中存在非托管项目.为了调试它们,您需要显式启用非托管代码调试.

  • 右键单击项目并选择属性
  • 转到"调试"选项卡
  • 选中"启用非托管代码调试"

  • @sc_ray:如果你正在附加一个进程:在`Attach to Process`框中,单击`select`并检查"Managed"和"Native"框. (5认同)