【问题标题】:VS2015 "no symbols loaded for this document" for .lib file.lib 文件的 VS2015“没有为此文档加载符号”
【发布时间】:2018-04-09 16:19:02
【问题描述】:

我有一个在调试中编译的 .dll 文件的问题。它与一个 .lib 文件静态链接,该文件也在调试中编译。源可供所有人使用。但是,当我运行 .dll 并将 VS 附加到进程时,它只能单步执行 .dll 自己的函数,而不能单步执行 .lib 中的函数。

在模块视图中,我可以看到为所有模块加载了符号。如何确保 .lib 也有与之关联的符号?据我了解,因为它是静态链接的,所以在编译“父”.dll 时应该生成它的符号,对吗?那么在构建 .dll 时我需要做些什么来确保可以单步执行所有功能吗?

【问题讨论】:

  • 有关库的信息将包含在 .pdb 文件中。
  • 链接器通常会针对此类事故生成警告。通常是 LNK4099,有时是 LNK4204。重新构建 DLL 时仔细查看。如果没有像样的构建跟踪,它只会随机猜测,你可以看到但我们看不到。

标签: c++ visual-studio debugging dll lib


【解决方案1】:

您需要添加刚刚为调试器构建的 LIB 的 pdb 文件的位置,以便在适当的 Tools/Options 部分(通常与输出 LIB 相同的目录)中找到符号。

然后,您可以在相应的Solution Property页面中添加源文件的位置:

然后,Visual Studio 调试器将找到所有适当的信息。它将加载符号并能够在适当的时候跳转到 LIB 源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-08
    • 2012-01-10
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 2015-12-20
    • 2011-09-15
    • 2015-01-23
    相关资源
    最近更新 更多