Eclipse在不存在的断点处停止

18

我有一个Eclipse(Java)项目,它会在不存在的断点处停止。这个位置曾经有一个断点,但我已将其删除。任何想法为什么会发生这种情况呢?

注意:这不是在此处提到的相同问题 - 幽灵断点让我疯狂!

6个回答

42

我也遇到过这个问题。要解决它,只需在菜单中转到运行 -> 移除所有断点。这将移除所有断点。

稍后您可以重新定义所需的断点。


@Geoff,随意给答案点赞并标记为已接受,这将有助于其他遇到相同问题的人。 - Suraj Chandran
1
很高兴这个答案对你有帮助,但由于标题中写着“不存在的断点”,我无法将其视为被采纳的答案。如果没有断点存在,那么“删除所有断点”的选项是不可用的。 - katana0815
谢谢,我已经寻找这个解决方案有一段时间了! - Ruik

12

如果您确定没有断点(运行 > 删除所有断点),那么有两件事需要考虑:

  1. 您对调试器的工作原理存在误解。
  2. 您的程序因为等待某些输入而停止了。

6

Eclipse 可能因为未捕获的异常而停止。要解决这个问题:

  • 处理异常
  • 设置 -> Java -> Debug > 在未捕获的异常上暂停执行(在此菜单中还有更多的设置可以暂停执行!)

我从这里获取了这些信息: https://dev59.com/K3RB5IYBdhLWcg3wF0Ag#723313


最终,我不知怎么弄的,可能是无意中配置了一些东西,之后我就完全找不到禁用它的设置了!我知道默认情况下它会在异常处停止执行,但是一直不知道原因。谢谢。 - DGoiko

2

我曾经遇到过同样的问题,我使用的是Eclipse Mars版本。在我的情况下,我采用了不同的方法来解决它。

  1. 我打开了断点选项卡(如果您处于调试模式下,则会看到此选项卡)

  2. 我发现同一行代码有两个启用的断点,其中一个已经取消了勾选,但另一个仍然被勾选

  3. 我取消了它的勾选,现在它就不再停止了。


非常好的解决方案,而不是“删除所有并重新创建...”,因为在一个庞大的JAVA项目中,您有多个文件中的几个断点,如果不失去方向,您无法重新创建在会话中设置的所有断点。谢谢Roshan! - Banzai

1
问题在于Eclipse会在另一个线程中停止你“删除”的断点上。因此,如果您有10个线程,并且调试器停在您放置的断点上,即使您删除了断点,调试器也将停在其余9个线程中断点曾经存在的地方。
如果选择在断点被命中时停止整个VM,则其他线程将无法到达该断点(因为它们被暂停),并且您将不会遇到这种奇怪的行为。
为了改变挂起范围,请右键单击断点==>属性==>选择相关的单选框
挂起线程/VM:这些是单选按钮。默认情况下,调试器只会暂停命中断点的线程。但是,如果您选择单选框Suspend VM,则在命中断点时将暂停所有线程。

0

如果它发生在第一行,那么应该是调试器设置的问题。这个线程应该会有所帮助:防止xdebug在索引文件的第一行中断

但简而言之:

  1. "Windows -> Preferences -> PHP(或Java) -> Debug",取消选中 "Break at first line"。
  2. "Run > Debug Configurations > PHP Web Application(或Java)",并在所有配置中取消选中 "Break at first line"。
  3. "Project > Properties > PHP > Debug",取消选中 "Break at First Line"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接