"Build succeeded" 但 "The breakpoint will not currently be hit"

"Build succeeded" but "The breakpoint will not currently be hit"

我正在针对 DOSBox-X 项目代码库工作。

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

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

TL;DR;它随机发生

有专家能解释一下这可能是什么原因造成的吗?

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

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

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

请确保您正在调试程序,根据来源,目前 是这样。

(注意:它有时会卡住。我偶尔不得不做一个 Clean All 来获取断点以重新开始工作,即使我没有更改任何代码。但这应该非常罕见。)

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