【问题标题】:Visual Studio C++ Debug DLL containing static library包含静态库的 Visual Studio C++ 调试 DLL
【发布时间】: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 它不能在输出窗口中加载符号。

标签: c++ c dll


【解决方案1】:

静态库需要用调试符号构建,也需要命名为 pdb 文件。这应该可以解决您的问题。

【讨论】:

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