【发布时间】:2016-01-12 20:29:12
【问题描述】:
我有一个 C++ DLL 项目,其中包含一些断点。这些断点正确命中。该项目引用了其他静态 C 库。昨天调试器能够在该库中的断点处停止,但今天令人惊讶的是它显示"no symbols have been loaded for this document"。以前有人遇到过这样的问题吗?
【问题讨论】:
-
以前有人遇到过这样的问题吗?很多次。您是否不小心更改了 dll 中的文件?如果任何源文件的时间戳比 dll 更新,您的断点将不起作用。
-
我多次验证了时间戳——当然没问题。我也确定我正在附加正确的应用程序(来自 DLL 的日志与应用程序状态匹配)。
-
今天编译的代码是否在编译和链接步骤中都没有
-g参数?库的调试器是否可以看到源代码?顺便说一句:哪个文件是调试器指出它找不到符号?库、源代码,还是两者兼而有之?调试器是否从库的源代码所在的其他目录运行?您是否尝试过类似库中的load symbols命令? -
通常 Visual Studio 会告诉每个 dll 它不能在输出窗口中加载符号。