从托管调用时调试本机代码

时间:2010-12-04 16:03:27

标签: c# c++ .net-4.0

我编写了一个C#应用程序,其中大部分工作都是在C ++后端完成的。现在我一直在积极开发双方,后端的当前迭代会在特定函数中引发访问冲突。我怎么去调试呢? VS不会破坏本机代码中的异常或断点,也不会显示本机代码的调用堆栈或本地代码,即使这两个项目都是在同一解决方案中构建的。我宁愿避免使用日志语句返回并丢弃所有本机代码。

3 个答案:

答案 0 :(得分:12)

如果您打开混合模式调试(并重新编译项目),VS也会调试本机代码。

请参阅Microsoft的解释:http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx

答案 1 :(得分:3)

来自Visual Studio 2016

  1. 项目>右键单击>特性
  2. 调试>启用本机代码调试。
  3. enter image description here

答案 2 :(得分:2)

使用Visual Studio ,您可以将调试器从原生C ++项目附加到正在运行的C#应用​​程序。

在附加调试器并运行C#应用程序之前

  
      
  1. 在VS中打开您的本机C ++项目。
  2.   
  3. 确保将您配置为调试模式。然后重建你的本地人   C ++代码。

  4.   
  5. 在您想要破解的位置添加断点并开始单步执行   代码。确保已将断点放在代码中   C#应用程序调用它。

  6.   
  7. 如果您的C#应用​​程序是您的解决方案的启动项目,   在项目属性页面的Debug节点下确保   检查“启用本机代码调试”,然后重建整个   溶液

         

    否则你需要重建引用它的C#应用​​程序   新编译的DLL。运行该应用程序并附加VS调试器   C#项目的C ++应用程序   要执行此操作,请转到“调试”选项卡 - >附加到流程 - >选择C#应用程序。

  8.