我可以强制生成JVM崩溃日志文件吗?

11

JVM崩溃时的日志文件包含了各种有用的调试信息,例如被加载的共享库和完整的环境。我是否可以通过编写会导致JVM崩溃的代码或其他方式来强制生成这些信息之一?或者,是否可以通过其他方式访问相同的信息?

4个回答

8

1
请参见https://dev59.com/IW035IYBdhLWcg3wMM4G。 - jhclark
那个问题似乎是关于核心转储的,可以将其发送给JVM实现者(例如IBM),而不是hs_err_pid*.log - PJTraill

2

在这些工具中,jstack 似乎最有前途,使用命令 jstack -l -F -m <pid>(如果进程没有挂起,则不需要 -F)。 这将以混合模式(Java 和 native)获取您所有线程的堆栈和被锁定的同步器,即使进程挂起。 - PJTraill
或者查看 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/toc.html 获取 Oracle Java 8 的相关信息(之前的链接是6,但内容可能并不会有太大差异)。 - PJTraill

1
在Ubuntu 20.04.1 LTS上,我通过以下方式强制使jdk 11进程核心转储:
kill -4 <PID>

0

这个链接似乎只针对IBM客户提供的工具,而我不是其中之一。 - DJClayworth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接