msvc "the breakpoint will not currently be hit"

msvc "the breakpoint will not currently be hit"

MSVS 2013:我有 VC 项目和静态库的 C++ 代码,我想从同一解决方案中的 exe 项目中进入。但是,调试器一直告诉我它不会到达断点,因为它无法根据静态库的调试符号 ("The breakpoint will not currently be hit. No symbols have been loaded for this document") 加载。同一解决方案中的其他静态库工作。我最近刚刚添加了新的,因为我想进入其中的一些代码以查看出了什么问题。我添加了一个从 exe 到 lib 项目的构建依赖项,不知道这是否有任何影响,但我认为它不会造成伤害。我也尝试过清理和重建。什么可能是提示,什么是我没有得到的:为什么 VS 在获得源代码时首先尝试加载调试符号?

有趣的是,我有一个不同的解决方案,也使用了完全相同的静态 lib 项目,它在那里工作,所以问题似乎不是 lib 项目中的混乱设置。我比较了两个 exe 项目的所有链接器和编译器设置,没有发现任何可疑的差异。

非常感谢任何关于问题的想法。

这有几个可能的原因:

  1. 您设置断点的函数已内联(检查您的 link 时间优化标志 /LTCG 并禁用任何)
  2. 您在没有调试信息的情况下构建了库(检查 /DEBUG 标志)
  3. 附加调试器时 Visual Studio 没有找到包含调试信息的 .pdb 文件(这会在输出 window 中产生警告)
  4. 上述编译器和 linker 选项不匹配(在这种情况下你应该看到警告)

尝试以下操作:对静态库和您的可执行项目使用默认调试构建 运行。在您的可执行项目中引用库项目,不要显式地将库添加到 Linker->Input->Additional Dependencies。