问题是,当我放置断点并调试/运行时,断点会自行移动。
编码前/编码时:
点击运行/断点命中后:
断点通常对我来说工作正常,但似乎它们有时会随机出现。很久以前,我第一次在 VB 项目中遇到这个问题,最后,我通过删除断点并将其添加到其他仍然有用的地方来绕过这个问题。
虽然我可能可以再次做同样的事情,而且这只是第二次发生(我记得),但我真的不想这样做,并且想知道到底出了什么问题。
我在这里阅读了许多类似的问题,但我看不到完全匹配的内容,而且答案也没有帮助。我尝试过 - 建造、重建、关闭/重新开放和清洁。
我只提供了它发生的代码位的图片,如果您需要其他任何内容,请告诉我。
这是因为调试器此时无法中断。例如,调试器无法在自动实现的属性或方法的标头处中断;相反,它在方法的第一行中断。
还要检查您是否在一种模式(调试)下设置了断点,但现在处于不同的模式(如发布)。这让我有些短暂的焦虑。
在 Windows 莫名其妙地向当前系统日期添加 6 个月(以及向时间添加 1 小时)后,我遇到了此问题。我没有立即纠正这个问题,因此在纠正之前进行的构建对于 Visual 来说看起来更新。这会导致调试时运行错误的(较旧的)构建。
由于我找不到“Clean Solution/Project”选项,我不得不手动删除解决方案中的所有 .pdb 文件。问题立即得到解决。我只是希望不再需要删除任何文件(我是 Visual 新手,不太了解它在幕后的工作原理)。
如果断点位于 return 语句之后,您可以获得此信息。 Visual Studio 会将断点弹到右大括号(或 VB.NET 的“结束函数”),因为 return 会跳出函数。
对于
Visual Studio Code
用户来说,可能与TS/NODE有关:
--nolazy
标志,所以你必须传递它(更多信息:https://stackoverflow.com/a/62501780/2377343)sourceMap
标志(更多信息:https://github.com/hbenl/vscode-mocha-test-adapter/issues/189#issuecomment-1024449697)