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