【发布时间】:2020-03-02 13:43:41
【问题描述】:
如何在 JVM 崩溃时创建线程和核心转储?当 JVM 突然崩溃时,是否存在任何 JVM 参数来创建包含这些转储的文件?
就我而言,我需要准备 Java 虚拟机来创建该文件。
【问题讨论】:
-
正如答案中所说的“如果 JVM 由于其他原因而崩溃,则不需要转储”。此外,当 Oracle JVM 崩溃时,它会自动创建一个日志文件。您究竟想从所谓的“线程和代码转储”中得到什么?
-
看看this 话题。当 JVM(至少是 HotSpot)崩溃时,它会创建一个致命错误日志(默认路径是 JVM 进程的工作目录)。它包含跟踪错误所需的大量信息,包括堆栈跟踪、线程、堆、操作系统等等。
-
那么有两个问题。您怎么知道这是 JVM 崩溃而不是其他原因?你确定是热点?无论如何,尝试使用
-XX:OnError选项运行 JVM 并指定日志路径。如果仍然没有,我真的怀疑问题是由 JVM 崩溃引起的。 -
可能有很多原因。你说日志突然中断。是否总是相同的最后一条消息?在这种情况下,我会深入研究代码,很可能有一个未捕获的异常导致 JVM 终止。
标签: java jvm diagnostics