2010-12-04 70 views
6

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

+0

哪个操作系统和VS版本? VS2008及更早版本不支持64位模式下的混合模式调试。 – 2010-12-04 16:13:44

+1

@Steve:.net 4.0暗示VS 2010 – Vlad 2010-12-04 16:16:04

回答

1

使用Visual Studio你可以从你的本地C++项目调试器附加到正在运行的C#应用​​程序。

之前附加调试和运行C#应用程序在VS.

  1. 打开本地C++项目
  2. 确保您已配置为调试模式。然后重建您的本地 C++代码。

  3. 在你想破解的地方添加断点,并开始跳过 的代码。确保你已经将你的断点放置在C#应用程序调用的代码 中。

  4. 如果你的C#应用​​程序是您的解决方案, 在项目调试节点下的启动项目属性页确保 选中“启用本地代码调试”,然后重建整个 解决方案。

    否则,您将需要重新编译引用 新编译的DLL的C#应用​​程序。运行该应用程序并将C++项目的VS调试器 附加到C#应用程序。
    要做到这一点去调试选项卡 - >附加到进程 - >选择C#应用程序。

相关问题