【发布时间】:2011-06-22 17:32:02
【问题描述】:
我已经用调试信息(编译器选项 /Zi 和链接器选项 /DEBUG)构建了一个特定的 dll。通过主程序中的中断语句,我启动了 Visual Studio 进行调试。在 Debug->Windows 菜单中显示的模块列表中,我可以看到已为感兴趣的 dll 加载了符号。但是,当我从该 dll 打开 C++ 文件并尝试设置断点时,它显示调试符号不适用于文档。毫无疑问,这个 C++ 文件被编译到那个 dll 中,并且它与用于构建 dll 的源相同(我只是这样做了)。为什么会这样?在我开枪之前请帮忙。
【问题讨论】:
-
尝试删除解决方案目录中隐藏的.suo文件。
-
C++ 源代码在驱动器上的位置是否与构建 DLL 时的位置相同?或者您正在运行带有源索引的符号服务器?
-
我现在也发生了同样的事情。出乎意料的是,我在不同的运行中遇到了不同的断点。 (这是一个直接的 VC++ MFC 解决方案。所有第三方库都以源代码形式存在,并与解决方案的其余部分一起编译。)
-
好的,我进行了 Windows 更新,重新启动,启动了行为不端的 VS2008,进行了清理,进行了重建,我看到在重建中编译的代码中出现了急需的断点未加载符号。这对我来说是一个真实而严重的问题,所以现在是赏金时间。
-
您确定 pdb 和 dll 匹配吗?另见stackoverflow.com/questions/134866/…
标签: c++ visual-studio dll symbols