【发布时间】:2011-07-18 19:08:52
【问题描述】:
如何从托管代码项目中调试本机代码项目?我正在使用 C# 调用 C++ 代码,需要调试 C++ 代码。否则,我必须退出项目,打开 C++ 项目,创建测试器,然后调试代码。这太可怕了。
【问题讨论】:
-
这是您问题的答案-stackoverflow.com/questions/57840/…
-
您不能在两个不同的 IDE 窗口中同时打开两个项目?
如何从托管代码项目中调试本机代码项目?我正在使用 C# 调用 C++ 代码,需要调试 C++ 代码。否则,我必须退出项目,打开 C++ 项目,创建测试器,然后调试代码。这太可怕了。
【问题讨论】:
将您的 c++ 项目添加到包含您的 C# 代码的解决方案中
在 C# 项目属性页面的调试选项卡下
勾选“启用非托管代码调试”
如果这不起作用,您还需要从“调试”或“工具”菜单(在 VS2017 中)打开“选项”对话框,然后转到“调试”->“常规”。检查选项
“抑制模块加载时的 JIT 优化(仅限托管)。”
然后您将能够调试到您的 C++/CLI 和 C++ 代码。 (最后的提示来自Kim Togo Andersen。)
【讨论】:
在 Visual Studio 的调试选项中,您必须指定正确的调试器类型。
打开项目的属性对话框窗口,在配置属性下选择调试。对于 Debugger Type 选项,选择适用的属性:
这可以是自动的,也可以是混合的。我更喜欢混合,因为它明确说明您需要托管调试和本机调试。
附带说明,您只能选择原生代码,但无法在托管代码中设置断点。我不确定这是否对您来说是个问题。
如果您只选择托管,您显然不会在本机代码中遇到任何断点。
【讨论】: