【问题标题】:Some DLLs missing from Modules Window模块窗口中缺少一些 DLL
【发布时间】:2018-08-13 11:53:34
【问题描述】:

在网上找了几个小时都没有成功。

我在 Visual Studio 2013 工作。 我有一个调用 c++ 的 c# 项目的解决方案。

我在c++项目的一个函数中设置了断点,得到如下警告:

“当前不会命中断点。没有为此文档加载任何符号”。

所以我打开 Debug → Modules Window 来检查符号。而且我看到C++项目的DLL没有出现在Modules Window中。

应用程序运行正常。

我查看了应用程序的转储文件,它从正确的位置获取了 dll。

我有这个解决方案的旧版本,我可以在那里设置断点。 如果我比较两个解决方案的模块窗口的内容,旧的包含更多的 dll。

关于我应该寻找什么以及在哪里寻找解决方案的任何想法?

【问题讨论】:

  • 如果动态加载或延迟加载 DLL,直到需要加载图像时才会加载符号。您是说 dll 已加载并完成其工作,但没有命中断点?
  • 是的,完成的 dll 是工作。我可以看到它已加载到转储文件中。但是断点没有命中,我在模块窗口中看不到他(和其他一些 dll)

标签: c# c++ debugging visual-studio-2013


【解决方案1】:

您可能需要enable mixed mode debugging 才能同时在 C# 和 C++ 中进行调试。 这是一个项目级别的设置,因此可以解释为什么您的旧项目有效。

基本步骤应该是这样的:

  1. 在解决方案资源管理器中,右键单击 C++ 项目并选择属性。
  2. 在“属性页”对话框中,展开“配置属性”节点,然后选择“调试”。
  3. 将调试器类型设置为混合或自动。

  4. 在解决方案资源管理器中,右键单击 C# 项目并选择属性。

  5. 选择调试
  6. 在启用调试器部分选择启用本机代码调试

【讨论】:

  • 它已经设置为自动我将其更改为固定,但我仍然无法调试
  • 您在 C# 项目调试设置中是否勾选了“启用本机代码调试”?虽然,我不确定这是否仅在较新的 VS 版本中设置。
【解决方案2】:

确认您没有在发布模式下运行。

删除 bin/obj 文件夹

清理解决方案并重建它。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2014-04-06
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多