“构建成功”但“当前不会命中断点”
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】:我通过将大多数项目属性重置为默认值解决了这个问题,现在调试可以正常工作了。
【讨论】:
以上是关于“构建成功”但“当前不会命中断点”的主要内容,如果未能解决你的问题,请参考以下文章
如何解决“当前不会命中断点。没有为此文档加载任何符号。”警告?
vs2010 C# 当前不会命中断点。还没有为该文档加载任何符号。 求解决