"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 来获取断点以重新开始工作,即使我没有更改任何代码。但这应该非常罕见。)
我通过将大多数项目属性重置为默认值解决了这个问题,现在调试工作正常。
我正在针对 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 来获取断点以重新开始工作,即使我没有更改任何代码。但这应该非常罕见。)
我通过将大多数项目属性重置为默认值解决了这个问题,现在调试工作正常。