“构建成功”但“当前不会命中断点”

Posted

技术标签:

【中文标题】“构建成功”但“当前不会命中断点”【英文标题】:"Build succeeded" but "The breakpoint will not currently be hit" 【发布时间】:2019-11-07 18:13:55 【问题描述】:

我正在处理 DOSBox-X 项目代码库。

大部分时间断点都有效,但有时即使构建成功,我也会得到The breakpoint will not currently be hit。这很可能发生在对代码进行微小更改(几个字符)或在合并后简单地切换回主分支(根本没有更改)时。

当然,如果我重新构建整个项目或执行Build full program database for solution,它总是会起作用,但前者需要相当多的几分钟,后者要少一些,但仍然很长。

TL;DR;它是随机发生的

专家能否解释一下是什么原因造成的?

【问题讨论】:

"即使构建成功,当前也不会命中断点。" - 你为什么期望这两件事之间有任何关系?如果构建成功,很好。构建可能已经优化了断点所在的代码,也很好 - 编译器优化器做得很好。 【参考方案1】:

你的构建是否成功与断点是否有效没有太大关系,除非你没有成功创建的可执行文件,那么就没有什么可调试的了。

当您更改源代码时,它不再与用于创建可执行文件的代码“同步”。这并不意味着可执行文件不再可调试(毕竟它仍然有符号等),但 Visual Studio 是一个图形 IDE,其调试器已集成到源代码编辑器中。

如果它不再具有该源代码,则该集成将无法正常工作,并且包括您在 X 行设置的断点。 X 行现在是什么?因此,它会禁用它们以避免混淆。

请确保您正在调试程序,因为它当前根据源代码显示。

(注意:它有时确实会卡住。我偶尔不得不执行 Clean All 以使断点重新开始工作,即使我没有更改任何代码。但这应该是非常罕见的发生。)

【讨论】:

显然两者不再同步,导致这个问题,但我正在寻找一个比理论更实际的答案:) @Aybe:一个实用的答案。【参考方案2】:

我通过将大多数项目属性重置为默认值解决了这个问题,现在调试可以正常工作了。

【讨论】:

以上是关于“构建成功”但“当前不会命中断点”的主要内容,如果未能解决你的问题,请参考以下文章

vs2015当前不会命中断点因为还没有

如何解决“当前不会命中断点。没有为此文档加载任何符号。”警告?

当前不会命中断点:此文档未加载任何符号

vs2010 C# 当前不会命中断点。还没有为该文档加载任何符号。 求解决

我经常在vs2010里调试C#网站程序,但 总报”当前不会命中断点,还没有为该文档加载任何符号。“不知道为什

vs2005使用自定义服务器时出现当前不会命中断点