java - Eclipse - 调试器不会在断点处停止

我试图麻烦拍摄JUnit。 在源代码中,我在两个地方设置了断点:1)在一行中初始化静态成员2)其中一个测试用例的第一行。

调试器在静态字段初始化行中停止。 但它并没有停留在测试用例中。 无论我在测试用例中设置断点,调试器都不会停在那里。 我确信测试用例已经执行,因为我可以看到我添加的日志消息出现在日志中。

任何帮助将不胜感激。

我正在使用Eclipse Galileo和JUnit4启动器。

Roy asked 2019-09-11T07:19:48Z
22个解决方案
88 votes

修复可以像单击运行/跳过所有断点一样简单。 为我工作。

user1164035 answered 2019-09-11T07:20:38Z
51 votes

确保在“运行”>“调试配置”下,选中“在主处停止”(如果适用于您的情况)。

Answerer answered 2019-09-11T07:21:02Z
39 votes

这可能与JDK 6 Update 14中的一个错误有关,如JDK 6更新15的发行说明中所示。

如果这确实是问题所在,那么你应该转向更高版本的JDK(虽然已经针对6u16,6u18和7b1发布了修复版,但这并不能保证。) 最好的办法是使用-XX:+ UseParallelGC标志。 增加最小和最大堆大小的大小,以延迟第一个GC,带来暂时的缓解。

顺便说一下,在Eclipse中使用这个错误报告来跟踪其他人的情况。

Vineet Reynolds answered 2019-09-11T07:20:15Z
18 votes

通常当我遇到这种情况时(很少见,但确实如此)意味着正在执行的代码与编辑器中的代码不同。 Eclipse不时会发生构建的类和编辑器中的代码不同步的情况。 当发生这种情况时,我会得到各种奇怪的调试器行为(调试空行,跳过代码行等)。

重新启动Eclipse,清理所有项目并重建所有项目通常可以解决问题。 我也有Maven插件(旧版本......现在还没有用过一段时间),它也有这样做的倾向。

否则它可能是一个bug,也许是Vineet所说的,

希望这可以帮助

Newtopian answered 2019-09-11T07:21:40Z
17 votes

您可能不小心跳过了Eclipse工具栏中的所有断点。 要解决这个问题,请转到Eclipse - > Run - > Skip All Breakpoints。

Jigna.Shah answered 2019-09-11T07:22:03Z
3 votes

项目 - >清洁似乎对JRE 8有用

JH95 answered 2019-09-11T07:22:27Z
2 votes

删除所有断点并重新添加它们。

Raffi Khatchadourian answered 2019-09-11T07:22:50Z
1 votes

对于JDK7,运行 - >调试配置,选中“在调试时测试运行后保持JUnit运行”。

Frank Fu answered 2019-09-11T07:23:13Z
1 votes

发生过一次,当我取消选中“自动运行>生成”并忘记重新检查时。

Mathiouss answered 2019-09-11T07:23:37Z
1 votes

确保将包声明在顶部。在我的groovy代码中,这在断点处停止:

package Pkg1

import java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...

这不会在断点处停止:

import java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...
Don Harrington answered 2019-09-11T07:24:07Z
1 votes

为了使用remote调试工作,必须将java .class文件与调试信息一起编译。 如果将“-g:none”选项传递给编译器,则类文件将没有必要的信息,因此调试器将无法将源代码上的断点与远程中的该类匹配。 同时,如果jar / class文件被混淆,那么它们也将没有任何调试信息。 根据您的回答,很可能这不是您的情况,但这些信息可能对面临同样问题的其他人有用。

sergeyan answered 2019-09-11T07:24:32Z
1 votes

在我的情况下,问题是我没有在Debug透视图中打开Debug视图,因此:

1 - 确保已打开调试透视图:

eclipse debugger not working 1

2 - 确保已打开调试视图:

eclipse debugger not working 2

Dani answered 2019-09-11T07:25:08Z
0 votes

要删除断点:

  1. 将您的类调试为junit测试
  2. 调试器停止后,单击“变量”和“表达式”旁边的“断点”选项卡
  3. 在断点选项卡的右上角,单击带有两个“X”的按钮
  4. 停止测试,替换断点并再次运行调试器
Cyrois answered 2019-09-11T07:25:57Z
0 votes

还要验证其他行上的断点是否有效,这可能是调试器中的错误。 我有一个Eclipse调试器的问题,在一个布尔分配上放置一个断点,其代码在下一行不起作用我在这里报告,但把它放在上一行或下一行。

Henno Vermeulen answered 2019-09-11T07:26:21Z
0 votes

如果什么都没有 -

  1. 删除远程/本地调试配置,并创建一个新配置。
  2. 在调试配置中添加源。
kanaparthikiran answered 2019-09-11T07:26:57Z
0 votes

另一个可能的问题是防火墙可能阻止调试器端口。 例如,我正在使用mule anypoint studio(v 5.4.3)。 默认调试器端口为6666.执行流时,它不会在断点处停止。 当我将端口更改为另一个端口(例如8099)时,它工作正常。

RuntimeException answered 2019-09-11T07:27:22Z
0 votes

转至Right click->Debug Configuration并检查是否创建了太多调试实例。当我从配置中删除多个调试实例并重新开始调试时,我的问题得到了解决。

priyanka_rao answered 2019-09-11T07:27:46Z
0 votes

如果你在Eclipse上,

右键单击“Package Explorer”下的项目文件夹。

转到源 - >清理并选择您的项目。

这将清除任何混乱,你的断点现在应该工作。

Sureshbabu E answered 2019-09-11T07:28:30Z
0 votes

创建一个新工作区对我有用。

Ahmed Tawila answered 2019-09-11T07:28:53Z
0 votes

在我的情况下,我在同一工作区中有多个项目。 我试图调试的java文件存在于具有相同包的多个项目中。

我不需要其他项目,所以只需关闭不相关的项目(或从不相关的项目中删除文件)。

Shanu Gupta answered 2019-09-11T07:29:23Z
0 votes

关于Vineet Reynolds的另一个评论回答。

我发现我必须在eclipse.ini中设置-XX:+UseParallelGC

我按如下方式设置虚拟机(vm)参数

-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

这解决了这个问题。

Amir Pauker answered 2019-09-11T07:30:07Z
-2 votes

这对我有用:

我必须将我的本地服务器地址放在PHP Server配置中,如下所示:

enter image description here

注意:该地址是我在Apache .conf文件中配置的地址。

注意:唯一有效的断点是“第一行中断”,之后断点不起作用。

注意:检查php.ini文件中的xdebug属性,并删除您认为不需要的任何属性。

Francisco Corrales Morales answered 2019-09-11T07:30:55Z
translate from https://stackoverflow.com:/questions/1370868/eclipse-debugger-doesnt-stop-at-breakpoint