The text or classic Heapdump is a list of all object instances in the heap, including object type, size, and references between objects, in a human-readable format.
The header record is a single record containing a string of version information.
// Version: <version string containing SDK level, platform and JVM build level>
// Version: J2RE 6.0 IBM J9 2.5 Linux x86-32 build 20081016_024574_lHdRSr
Object records are multiple records, one for each object instance on the heap, providing object address, size, type, and references from the object.
<object address, in hexadecimal> [<length in bytes of object instance, in decimal>] OBJ <object type> <class block reference, in hexadecimal> <heap reference, in hexadecimal <heap reference, in hexadecimal> ...
The object address and heap references are in the heap, but the class block address is outside the heap. All references found in the object instance are listed, including those that are null values. The object type is either a class name including package or a primitive array or class array type, shown by its standard JVM type signature, see Java VM type signatures. Object records can also contain additional class block references, typically in the case of reflection class instances.
Examples:
0x00436E90 [28] OBJ java/lang/String
0x415319D8 0x00436EB0
0x00436EB0 [44] OBJ [C
0x41530F20
0x004380C0 [108] OBJ [Ljava/util/Hashtable$Entry;
0x4158CD80 0x00000000 0x00000000 0x00000000 0x00000000 0x00421660 0x004381C0 0x00438130 0x00438160 0x00421618 0x00421690 0x00000000 0x00000000 0x00000000 0x00438178 0x004381A8 0x004381F0 0x00000000 0x004381D8 0x00000000 0x00438190 0x00000000 0x004216A8 0x00000000 0x00438130 [24] OBJ java/util/Hashtable$Entry
0x4158CB88 0x004219B8 0x004341F0 0x00000000
<class block address, in hexadecimal> [<length in bytes of class block, in decimal>] CLS <class type> <class block reference, in hexadecimal> <class block reference, in hexadecimal> ... <heap reference, in hexadecimal> <heap reference, in hexadecimal>...
The class block address and class block references are outside the heap, but the class record can also contain references into the heap, typically for static class data members. All references found in the class block are listed, including those that are null values. The class type is either a class name including package or a primitive array or class array type, shown by its standard JVM type signature, seeJava VM type signatures.
Examples:
0x41532E68 [32] CLS java/lang/Runnable
0x4152F018 0x41532E68 0x00000000 0x00000000 0x00499790
0x00000000 0x004206A8 0x00420720 0x00420740 0x00420760 0x00420780 0x004207B0 0x00421208 0x00421270 0x00421290 0x004212B0 0x004213C8 0x00421458 0x00421478 0x00000000 0x41589DE0 0x00000000 0x4158B340 0x00000000 0x00000000 0x00000000 0x4158ACE8 0x00000000 0x4152F018 0x00000000 0x00000000 0x00000000
Trailer record 1 is a single record containing record counts.
// Breakdown - Classes: <class record count, in decimal>, Objects: <object record count, in decimal>, ObjectArrays: <object array record count, in decimal>, PrimitiveArrays: <primitive array record count, in decimal>
// Breakdown - Classes: 321, Objects: 3718, ObjectArrays: 169, PrimitiveArrays: 2141
Trailer record 2 is a single record containing totals.
// EOF: Total 'Objects',Refs(null) : <total object count, in decimal>, <total reference count, in decimal> (,total null reference count, in decimal>)
// EOF: Total 'Objects',Refs(null) : 6349,23240(7282)