【发布时间】:2019-01-04 18:02:59
【问题描述】:
我有一个需要调试的 C++ DLL 项目 (x86)。 此 DLL 由 exe 使用。
我可以轻松地将 VS2017 中的 DLL 项目附加到本机 exe (x86)。 当我在 VS2017 的 C++ DLL 项目中设置断点时,这些断点被命中。 这是正常的、理想的行为。
现在我已将 C++ DLL 项目附加到 .NET exe(编译为 x86)。 断点没有命中,我不知道为什么它不像原生 exe 那样工作。
我已取消选中“使用应用程序框架”选项,但这并没有改变任何东西。
我也尝试了“启用本机代码调试”选项,但没有成功。 另外,我尝试将它附加到 NET exe 的 Debug 版本和 NET exe 的 Release 版本。
我可以看到 VS2017 附加到正确的进程,因为当我关闭 NET exe 时,VS2017 退出调试模式。
但是,没有命中断点。
有什么特别需要我注意的吗?
【问题讨论】:
-
我猜你需要启用本机代码的调试。
-
@PaulMcKenzie 谢谢,但这不会改变任何事情。
-
然后从DLL端调试。加载 DLL 项目并将 .Net 应用程序作为可执行文件运行。
-
@PaulMcKenzie 是的,这就是我正在做的事情:我启动 NET.exe 项目,然后在 VS2017 中打开 C++ DLL 项目并单击“调试”->“附加到进程” .
-
不,不要附加。加载 DLL 工程,在 DLL 的调试配置中将要运行的可执行文件更改为 Net 可执行文件。另外,仔细查看控制台输出并检查是否正在加载 DLL 以及是否已加载符号。
标签: c++ debugging dll process visual-studio-2017