最近,我们发生了JVM崩溃之一,留下了由gcore命令生成的核心转储文件。我们希望查看文件的内容,并找出导致崩溃的确切原因。
使用该jmap命令,您应该能够将核心转储文件转换为hprof文件格式的文件,然后可以使用VisualVM和许多其他工具进行分析。我已经尝试过此操作并收到错误消息。这是我运行的命令(使用相同的JVM在崩溃发生的同一框):
jmap -dump:format=b,file=dump.hprof /usr/java/jdk1.6.0_16/bin/java core.dump.2878
整个响应是:
> Attaching to core core.dump.8483 from executable /usr/java/jdk1.6.0_16/bin/java, please wait...
> Error attaching to core file: Can't attach to the core file
那不是一个非常有用的错误消息。我想知道这是否是权限问题,但是我收到的命令运行命令与运行导致核心转储的JVM的用法相同。我也想知道核心文件是否已损坏,因此决定使用gdb是否可以打开核心文件并查看其中的内容。这是我得到的:
> gdb
GNU gdb(GDB)红帽企业版Linux(7.0.1-37.el5_7.1)
许可证GPLv3 +:GNU GPL版本3或更高版本
这是免费软件:您可以自由更改和重新分发它。
在法律允许的范围内,没有任何担保。输入“显示复制”
和“显示保修”了解详情。
该GDB被配置为“ x86_64-redhat-linux-gnu”。
有关错误报告的说明,请参见