【发布时间】:2019-03-19 16:37:48
【问题描述】:
我不知道如何调试托管应用程序中使用的代码的 C++ 部分。我似乎比其他现有的类似问题更具体
上下文:
- 我想调试我的 C++ DLL
- 它们使用 swig 封装在 C# 中
- 我还为使用封装的 C# dll 的应用程序构建了 C# 插件
- 应用程序无法从调试器启动,我必须在之后附加它
- 我在 VS2015 中以 debug 和 x64 模式构建了所有内容(c# dll 实际上是在“AnyCPU”平台中,未勾选“Prefer-32-bit”)
- 我在适当的环境中运行代码(代码的其他部分工作),它只是 C++ 部分中的一个错误,当它从 C# 部分发生时我想调试它
我尝试将程序作为 C++ DLL 的外部调试程序启动(指定“混合”调试,或作为 C# dll 的外部调试程序(启用“本机代码调试”)。但我认为这些选项可能ge 被忽略了,因为我无法在调试器中启动 exe,之后只需附加到进程。我附加了选择本机和托管调试器的进程。我只能中断我的托管代码
在 VS 2015 的调试输出窗口中,我没有看到可执行文件尝试加载我的 C++ dll,但在进程资源管理器中查看时我看到它们已加载。痛饮 (或托管应用程序的插件系统)可能正在做一些魔术来加载 c++ dll
有什么技巧可以帮忙吗?
【问题讨论】:
-
将调试附加到进程并指示 VS2015 调试本机代码或本机和托管。它显示在下拉组合框中
-
@JensMunk 我已经这样做了。我已经写过我做到了
-
接下来我会尝试 WinDbg
标签: c# c++ debugging visual-studio-2015 swig