如何分析来自 Java 核心转储的信息?[已关闭]

2022-09-01 02:01:49

如果一个进程崩溃并留下了一个核心转储,或者我创建了一个,那么我该如何分析它?gcore

我希望能够使用,等,并查看所有变量的值。jmapjstackjstat

通过这种方式,我可以找到JVM崩溃或冻结的原因。


答案 1

好的,如果你已经用 gcore 或 gdb 创建了核心转储,那么你需要把它转换成一个叫做 HPROF 文件的东西。这些可以由VisualVM,Netbeans或Eclipse的Memory Analyzer Tool(以前称为SAP Memory Analyzer)使用。我会推荐Eclipse MAT。

要转换文件,请使用命令行工具 jmap

# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234

哪里:

dump.hprof 是您要创建的 hprof 文件的名称

/usr/bin/java 是生成核心转储的 java 二进制文件的路径

core.1234 是你的常规核心文件。


答案 2

如果您使用的是 IBM JVM,请下载 IBM 线程和监视器转储分析器。这是一个优秀的工具。它提供了线程细节,可以指出死锁等。以下博客文章提供了有关如何使用它的良好概述。


推荐