Javadump(更常见的名字:javacore)
主题
Javadump(更常见的名字:javacore)
使用 Javadump
Javadump 生成的文件包含与 JVM 以及在执行期间的某个点捕获的 Java™ 应用程序相关的信息。例如,此信息可能与操作系统、应用程序环境、线程、堆栈、锁定和内存有关。
Javadump 为人类可读,且不包括任何 Java 对象内容或数据,但以下项除外:
- 带有线程标识和标记的线程名称
- 带有计数和标记的类装入器名称
- 类和方法名称
- 某些堆地址
控制 Javadump 生产的首选方式是在应用程序启动时使用 –Xdump:java: 来启用转储代理程序。请参阅使用转储代理程序。也可以通过使用环境变量来控制 Javadump。请参阅环境变量和 Javadump。在 JVM 意外终止或出现内存不足异常时,缺省代理程序将位于创建 Javadump 的位置。缺省情况下,在 JVM 收到特定信号时,也会触发 Javadump。
Javadump 标记
Javadump 文件包含根据识别标识标题区域划分的几个部分,增强了 Javadump 的可读性。
第一个识别标识如下所示:
NULL ------------------------------------------------------------- |
不同部分包含不同的标记,这使文件更易于进行语法分析,从而执行简单的分析。
同时也可以使用 DTFJ 对 Javadump 进行语法分析,请参阅使用 Diagnostic Tool Framework for Java,了解更多信息。
示例标记 (1CIJAVAVERSION) 如下所示:
1CIJAVAVERSION JRE 1.7.0 AIX ppc64-64 build 20110513_82212 |
常见标记具有以下特点:
- 标记长度多达 15 个字符(用空格填充)。
- 第一个数字为嵌套级别(0、1、2 和 3)。嵌套级别可能会被省略,例如级别 2 标记后面可能接着级别 4 标记。
- 第二、三个数字标识转储部分。主要部分有:
- CI 命令行解释器
- CL 类装入器
- LK 锁定
- ST 存储(内存管理)
- TI 标题
- XE 执行引擎
- 余下部分是一个唯一的字符串,在之前示例中为 JAVAVERSION。
特殊标记具有以下特点:
- NULL 标记是指该行目的只是为增强可读性。
- 每部分都以 0SECTION 标记以及该部分标题开头。
以下是转储开始时一些标记的示例。
NULL ------------------------------------------------------------------ |