我正在尝试拍摄JUnit。在源代码中,我在两个位置设置了断点:1)在初始化静态成员的行中2)在一个测试用例的第一行中。
调试器在静态字段初始化行中停止。但这并不会在测试用例中停止。无论我在测试用例中的何处设置断点,调试器都不会在那里停下来。我肯定知道测试用例已执行,因为我可以看到添加的日志消息出现在日志中。
任何帮助将不胜感激。
我正在使用Eclipse Galileo和JUnit4启动器。
我正在尝试拍摄JUnit。在源代码中,我在两个位置设置了断点:1)在初始化静态成员的行中2)在一个测试用例的第一行中。
调试器在静态字段初始化行中停止。但这并不会在测试用例中停止。无论我在测试用例中的何处设置断点,调试器都不会在那里停下来。我肯定知道测试用例已执行,因为我可以看到添加的日志消息出现在日志中。
任何帮助将不胜感激。
我正在使用Eclipse Galileo和JUnit4启动器。
Answers:
如JDK 6 update 15的发行说明中所述,这可能与JDK 6 Update 14中的错误之一有关。
如果确实确实是问题所在,则应移至JDK的更高版本(但这不保证,因为已针对6u16、6u18和7b1发布了修复程序)。最好的选择是使用-XX:+ UseParallelGC标志。增加最小和最大堆大小的大小,以延迟第一个GC,带来暂时的缓解。
修复可能很简单,只需单击“运行/跳过所有断点”即可。为我工作。
如果适用于您的情况,请确保在“运行”>“调试配置”下,选择了“在主机中停止”。
通常,这在我身上发生(很少见,但确实如此)意味着正在执行的代码与编辑器中的代码不同。对于Eclipse,构建的类和编辑器中的代码有时会不同步。发生这种情况时,我会得到各种奇怪的调试器行为(调试空行,跳过代码行等)。
重新启动Eclipse,清理所有项目并重建所有内容,通常可以清除一切。我也有Maven插件(较早的版本……暂时没有),也倾向于这样做。
否则可能是一个错误,也许是Vineet所说的,
希望这可以帮助
确保在顶部声明包装。在我的常规代码中,这在断点处停止:
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
...
还要验证其他行上的断点是否确实起作用,这可能是调试器中的错误。我在Eclipse调试器中遇到了一个问题,在该代码的下一行上放置一个布尔值赋值的断点不起作用,我在这里报告了这一点,但是在上一行或下一行上做了了。
另一个可能的问题是调试器端口可能被防火墙阻止。例如,我正在使用mule anypoint studio(v 5.4.3)。默认调试器端口为6666。执行流时,它不会在断点处停止。当我将端口更改为另一个端口(例如8099)时,它工作正常。
转到Right click->Debug Configuration
检查是否创建了太多调试实例。当我从配置中删除多个调试实例并重新开始调试时,我的问题已解决。
创建一个新的工作空间对我有用。
就我而言,我在同一工作区中有多个项目。我尝试调试的Java文件存在于多个具有相同程序包的项目中。
我不需要其他项目,因此只需关闭不相关的项目(或从不相关的项目中删除文件)。
关于Vineet Reynolds答案的另一条评论。
我发现我必须设置-XX:+UseParallelGC
在eclipse.ini
我按如下所示设置虚拟机(vm)参数
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M
解决了这个问题。
这对我有效:
我必须将本地服务器地址放入PHP Server配置中,如下所示:
注意:该地址是我在Apache .conf文件中配置的地址。
注意:唯一有效的断点是“第一行中断”,此后,断点不起作用。
注意:在php.ini文件中检查xdebug属性,并删除所有您认为不需要的属性。