我正在使用 Ubuntu 13.10 并使用 Eclipse 4.3 调试 Java Swing 事件。
在特定时刻,我的应用程序会显示一个弹出菜单,此时我的 UI 会冻结。鼠标指针只能移动,但没有任何响应。
为了结束冻结,我转到 TTY1,查找最新的 java 进程并将其终止。
我想找出导致此错误的原因。这是系统错误还是有什么问题?我关心的原因是,我只想针对该单个兴趣点进行调试 :-)
日志文件没有显示任何重要条目(但我对此并不完全确定)。xsession-errors 没有更新,如果我使用 -9 终止进程,情况仍然很尴尬:按键事件有效,但鼠标仍然无法正常工作。直到我关闭 Eclipse。
在我看来,这是与内存相关的标志。但 top 和 UI 工具显示剩余内存足够。
那么我该怎么做才能找到这个问题的根源呢?
答案1
如果你以前没有使用过,有一个很好的方法可以调试任何本地 Java 应用程序的问题,可视化虚拟机确实有助于解决服务器进程失控问题。它以 GUI 应用程序的形式启动,并附加到在同一 jvm 中运行的任何 Java 应用程序。如果 Eclipse 在工作时被锁定,这至少会让您知道哪些方法被卡住了。