当前位置:  开发笔记 > 编程语言 > 正文

Eclipse Debugger不会在条件断点处停止

如何解决《EclipseDebugger不会在条件断点处停止》经验,为你挑选了1个好方法。

我在Eclipse中有这个Java代码,我想调试.

这是代码:

    public Double repulsion(Node n1, Node n2) {
    Double rep = 0.0;
    rep = Math.pow(K, 2) / distEuc(n1, n2);
    System.out.println("Répulsion : " + rep);
    listForcesRep.add(rep);
    return rep;
}

    private Double distEuc(Node n1, Node n2) {
    Double d = 0.0;
    Object[] n1Attributes = n1.getAttribute("xy");
    Double x1 = (Double) n1Attributes[0];
    Double y1 = (Double) n1Attributes[1];
    Object[] n2Attributes = n2.getAttribute("xy");
    Double x2 = (Double) n2Attributes[0];
    Double y2 = (Double) n2Attributes[1];
    d = Math.sqrt((Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)));
    return d;
}

我在一行切换了一个断点:rep = Math.pow(K, 2) / distEuc(n1, n2);我以默认值运行调试器,它工作正常.

问题是,在某些时候rep变量需要一个值NaN,我需要一个条件断点才能理解为什么.

我像这样设置条件断点:

条件断点

但是当我运行调试时,它会跳过断点并继续循环.

我做错了什么?我该如何解决?

谢谢!



1> andrucz..:

那是因为rep在该行中仍然等于0.0:Double rep = 0.0;

您需要System.out.println("Répulsion : " + rep);在计算rep值后将条件断点放在,然后当执行在该行停止时,您将"Drop to Frame"再次执行该方法.

你也应该使用Double.isNaN(rep)rep.isNaN()代替rep == Double.NaN.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有