模块窗口中缺少一些 DLL
Posted
技术标签:
【中文标题】模块窗口中缺少一些 DLL【英文标题】:Some DLLs missing from Modules Window 【发布时间】: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) 【参考方案1】:您可能需要enable mixed mode debugging 才能同时在 C# 和 C++ 中进行调试。 这是一个项目级别的设置,因此可以解释为什么您的旧项目有效。
基本步骤应该是这样的:
-
在解决方案资源管理器中,右键单击 C++ 项目并选择属性。
在“属性页”对话框中,展开“配置属性”节点,然后选择“调试”。
将调试器类型设置为混合或自动。
在解决方案资源管理器中,右键单击 C# 项目并选择属性。
选择调试 在启用调试器部分选择启用本机代码调试【讨论】:
它已经设置为自动我将其更改为固定,但我仍然无法调试 您在 C# 项目调试设置中是否勾选了“启用本机代码调试”?虽然,我不确定这是否仅在较新的 VS 版本中设置。【参考方案2】:确认您没有在发布模式下运行。
删除 bin/obj 文件夹
清理解决方案并重建它。
希望对你有帮助
【讨论】:
以上是关于模块窗口中缺少一些 DLL的主要内容,如果未能解决你的问题,请参考以下文章