【问题标题】:How do I debug a native code project from inside a managed code project? C++/C#如何从托管代码项目中调试本机代码项目? C++/C#
【发布时间】:2011-07-18 19:08:52
【问题描述】:

如何从托管代码项目中调试本机代码项目?我正在使用 C# 调用 C++ 代码,需要调试 C++ 代码。否则,我必须退出项目,打开 C++ 项目,创建测试器,然后调试代码。这太可怕了。

【问题讨论】:

标签: c# c++ debugging native


【解决方案1】:

将您的 c++ 项目添加到包含您的 C# 代码的解决方案中

在 C# 项目属性页面的调试选项卡下

勾选“启用非托管代码调试”

如果这不起作用,您还需要从“调试”或“工具”菜单(在 VS2017 中)打开“选项”对话框,然后转到“调试”->“常规”。检查选项

“抑制模块加载时的 JIT 优化(仅限托管)。”

然后您将能够调试到您的 C++/CLI 和 C++ 代码。 (最后的提示来自Kim Togo Andersen。)

【讨论】:

  • 特别说明:调试器不支持在该平台上同时调试托管代码和原生代码。
  • @Storm:先尝试调试 x86 版本,仅对无法在 32 位中重现的问题使用 64 位调试器。
  • @Ben Voigt:我将所有目标类型都放到了 x86 上,没有任何改变。
【解决方案2】:

在 Visual Studio 的调试选项中,您必须指定正确的调试器类型。

打开项目的属性对话框窗口,在配置属性下选择调试。对于 Debugger Type 选项,选择适用的属性:

这可以是自动的,也可以是混合的。我更喜欢混合,因为它明确说明您需要托管调试和本机调试。

附带说明,您只能选择原生代码,但无法在托管代码中设置断点。我不确定这是否对您来说是个问题。

如果您只选择托管,您显然不会在本机代码中遇到任何断点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多