如何追踪 Java 中看似随机的崩溃?
How to track down seemingly random crashes in Java?
在做一些与一些 swing gui 组件一起工作的作业时,我的程序开始随机崩溃。也就是说,它启动,运行一小段时间,然后崩溃。我在控制台中没有收到任何错误,只是直接崩溃。
我不怀疑这是我写的东西,如果有人想看它,我很乐意展示代码,但是我可以自己做些什么来追踪可能是什么吗我崩溃的原因?
其他一些可能有用的信息:
- 我正在使用 eclipse,调试器似乎没有做任何事情来帮助我解决这个问题(程序仍然崩溃)。
- 在开始添加事件处理之前,我没有注意到任何此类问题。
- 我正在使用 Windows 10.
- 偶尔,我创建的 window 中什么也没有绘制。退出然后 运行 程序将再次运行。
一些可能的启发式:
看似随机发生的崩溃表明不正确的同步;寻找 event dispatch thread violation using one of the approaches cited here.
验证所有异常处理程序都产生诊断输出; 运行 从命令行确保诊断输出没有被无意中重定向。
尝试 运行ning 在不同调试器的支持下,例如NetBeans.
在 profiler.
的支持下尝试 运行ning
尝试不同版本的 JDK/JRE。
换个主机试试 OS.
在做一些与一些 swing gui 组件一起工作的作业时,我的程序开始随机崩溃。也就是说,它启动,运行一小段时间,然后崩溃。我在控制台中没有收到任何错误,只是直接崩溃。
我不怀疑这是我写的东西,如果有人想看它,我很乐意展示代码,但是我可以自己做些什么来追踪可能是什么吗我崩溃的原因?
其他一些可能有用的信息:
- 我正在使用 eclipse,调试器似乎没有做任何事情来帮助我解决这个问题(程序仍然崩溃)。
- 在开始添加事件处理之前,我没有注意到任何此类问题。
- 我正在使用 Windows 10.
- 偶尔,我创建的 window 中什么也没有绘制。退出然后 运行 程序将再次运行。
一些可能的启发式:
看似随机发生的崩溃表明不正确的同步;寻找 event dispatch thread violation using one of the approaches cited here.
验证所有异常处理程序都产生诊断输出; 运行 从命令行确保诊断输出没有被无意中重定向。
尝试 运行ning 在不同调试器的支持下,例如NetBeans.
在 profiler.
的支持下尝试 运行ning
尝试不同版本的 JDK/JRE。
换个主机试试 OS.