检测Java程序何时被杀死

时间:2018-03-16 22:32:33

标签: java debugging crash-reports

所以我有一个java程序,有时它可以挂起(停止响应)。这是因为我知道内环不可检测。但无论何时发生这种情况,我都会按下窗口上的X按钮,这需要一段时间,直到我的操作系统杀死程序。我的IDE告诉我退出代码是-805306369(0xCFFFFFFF),即使我从未在应用程序中设置它。

如果我第一次没有在调试模式下启动应用程序,这可能非常难以调试。我想要做的是捕获操作系统终止信号并将崩溃报告打印到一个文件中,该文件将显示所有正在运行的线程的堆栈跟踪。如果我在启用调试的情况下启动我的应用程序,并且在挂起时按下IDE中的暂停,我可以手动执行此操作。我并不总是在启用调试的情况下启动我的应用程序,因此我想要一个自动化解决方案。

我有什么方法可以做到吗?我现在能想到的唯一方法是让一个额外的线程检测某种键快捷键或命令,并在为我杀死应用程序之前打印所有线程的当前堆栈。当然,当应用程序被杀时自动执行它会更好。

0 个答案:

没有答案