msvc"断点当前不会被击中"

iko*_*o79 5 c++ visual-studio-debugging

MSVS 2013:我有一个静态库的VC项目和C++代码,我想从我的exe项目中进入,该项目位于同一解决方案中.但是,调试器一直告诉我它不会达到断点,因为它无法根据静态库的调试符号加载("断点当前不会被命中.没有为此文档加载符号").同一解决方案中的其他静态库工作.我刚刚添加了新的一个,因为我想进入它的一些代码,看看出了什么问题.我添加了一个从exe到lib项目的构建依赖,不知道这是否有任何影响,但我认为它不会受到伤害.我也尝试过清洁和重建.什么可能是一个提示和我没有得到的:为什么VS尝试在获得源代码时首先加载调试符号?

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

我们高度赞赏任何有关该问题的想法.

Bey*_*ios 4

造成这种情况的可能原因有以下几种:

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

请尝试以下操作:对静态库和正在运行的可执行项目使用默认的调试版本。在可执行项目中引用库项目,并且不要将库显式添加到链接器->输入->附加依赖项。