IDE在java fx应用程序中的断点处以调试模式挂起

时间:2015-01-09 14:52:55

标签: java intellij-idea javafx ide javafx-8

我在IntelliJ IDEA中调试时出现问题,它在javafx应用程序中的侦听器中的断点处以调试模式挂起。我试图增加堆空间,但它没有帮助。也许有人也有这样的问题,拜托,建议我该怎么做。

2 个答案:

答案 0 :(得分:43)

将其设置为VM参数:

-Dsun.awt.disablegrab=true

当调试器暂停时,它会拖放拖放,并在屏幕上留下一个神器 - 但它会让你调试。每当你阻止JavaFX线程时都会发生这种情况。

答案 1 :(得分:1)

这可能发生的原因很简单:应用程序在桌面上有锁,例如模态对话框或弹出菜单或打开菜单。然后它在断点处停止。这通知IDE。现在,IDE尝试在您的桌面上执行某些操作,但由于应用程序仍然锁定整个桌面,因此无法执行此操作 - >死锁。

您可以使用Chronon之类的工具来记录整个程序,并让您在时间轴上来回移动。

最后一个选项是记录或改为poor man's debuggerSystem.out)。

[编辑]

  

很难用System.out检查20个参数中哪个不相等。

实际上非常简单:

System.out.println("check");
if(!a1.equals(b2)) System.out.println(a1+"!="+b1);

然后复制最后一行。这样,只有当某些内容真正感兴趣时才会输出(而不是19个相等的参数)。如果无法区分aXaY(即两者都是true),请在输出中添加一些模式:

if(!a1.equals(b2)) System.out.println("a1:"+a1+"!="+b1);