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

时间:2010-03-25 21:38:49

标签: c# c++ visual-studio visual-studio-2008 debugging

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

谢谢

3 个答案:

答案 0 :(得分:26)

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

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

答案 1 :(得分:3)

  1. 转到托管项目属性。
  2. 右键单击它并转到调试选项卡。
  3. 在该部分下有一个名为enable debugger的部分。
  4. 选中“启用本机代码调试”选项
  5. 然后您将能够调试本机代码。祝你好运!!!

    请参阅下面用红色矩形突出显示的附件图片。

    enter image description here

答案 2 :(得分:0)

在Visual Studio 2019中,该选项如下启用:

  • 右键单击项目并选择属性
  • 转到“配置”下的“调试”子菜单
  • 从“调试器类型”下拉值中选择“混合”