【发布时间】:2011-02-04 18:31:12
【问题描述】:
我在 AIX 机器上运行一个 Core JAVA 应用程序,它创建了一个名为“core”的文件。 我担心的是 1. 我无法在“堆分析器”或“线程分析器”中打开这个“核心”文件。 2.我需要使用哪些工具,这样我才能分析这个“核心”文件。 3. 谁能详细说明这个文件?为什么创建这个“核心”文件。
等待回复..... 非常感谢
【问题讨论】:
我在 AIX 机器上运行一个 Core JAVA 应用程序,它创建了一个名为“core”的文件。 我担心的是 1. 我无法在“堆分析器”或“线程分析器”中打开这个“核心”文件。 2.我需要使用哪些工具,这样我才能分析这个“核心”文件。 3. 谁能详细说明这个文件?为什么创建这个“核心”文件。
等待回复..... 非常感谢
【问题讨论】:
core file 表示 JVM 崩溃时记录的内存状态(即 不是 Java 级别的信息,可以在分析工具中分析)。这种类型的文件表示 JVM 中的错误或您通过 JNI 从 Java 应用程序中调用的本机库的问题。
您可以运行的一个命令是:
strings core | grep JAVA_HOME
...它至少会告诉你哪个版本的 JVM 正在运行(因此可能负责核心转储)。
您还可以尝试在不同的操作系统或同一平台上运行您的应用程序,但使用不同版本的 JVM 来验证这是否是导致崩溃的原因。
您可能还想查看this question,其中 chilitom 描述了一种将核心文件转换为 HPROF 文件的技术,以便使用 Java 内存分析器应用程序对其进行分析。这需要使用jmap 命令行工具;例如
# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234
【讨论】: