【发布时间】: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