public class sun.jvm.hotspot.utilities.HeapHprofBinWriter extends sun.jvm.hotspot.utilities.AbstractHeapGraphWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.HeapHprofBinWriter
  super_class: sun.jvm.hotspot.utilities.AbstractHeapGraphWriter
{
  private java.util.HashSet<sun.jvm.hotspot.oops.Symbol> names;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Lsun/jvm/hotspot/oops/Symbol;>;

  private static final long HPROF_SEGMENTED_HEAP_DUMP_THRESHOLD;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483648

  private static final long HPROF_SEGMENTED_HEAP_DUMP_SEGMENT_SIZE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  private static final java.lang.String HPROF_HEADER_1_0_2;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "JAVA PROFILE 1.0.2"

  private static final int HPROF_UTF8;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int HPROF_LOAD_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int HPROF_UNLOAD_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int HPROF_FRAME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int HPROF_TRACE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int HPROF_ALLOC_SITES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int HPROF_HEAP_SUMMARY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final int HPROF_START_THREAD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final int HPROF_END_THREAD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final int HPROF_HEAP_DUMP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  private static final int HPROF_CPU_SAMPLES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  private static final int HPROF_CONTROL_SETTINGS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  private static final int HPROF_HEAP_DUMP_SEGMENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 28

  private static final int HPROF_HEAP_DUMP_END;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 44

  private static final int HPROF_GC_ROOT_UNKNOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  private static final int HPROF_GC_ROOT_JNI_GLOBAL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int HPROF_GC_ROOT_JNI_LOCAL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int HPROF_GC_ROOT_JAVA_FRAME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int HPROF_GC_ROOT_NATIVE_STACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int HPROF_GC_ROOT_STICKY_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int HPROF_GC_ROOT_THREAD_BLOCK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int HPROF_GC_ROOT_MONITOR_USED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final int HPROF_GC_ROOT_THREAD_OBJ;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int HPROF_GC_CLASS_DUMP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int HPROF_GC_INSTANCE_DUMP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  private static final int HPROF_GC_OBJ_ARRAY_DUMP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  private static final int HPROF_GC_PRIM_ARRAY_DUMP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  private static final int HPROF_ARRAY_OBJECT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int HPROF_NORMAL_OBJECT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int HPROF_BOOLEAN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int HPROF_CHAR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int HPROF_FLOAT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int HPROF_DOUBLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final int HPROF_BYTE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int HPROF_SHORT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final int HPROF_INT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final int HPROF_LONG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final int JVM_SIGNATURE_BOOLEAN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 90

  private static final int JVM_SIGNATURE_CHAR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  private static final int JVM_SIGNATURE_BYTE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  private static final int JVM_SIGNATURE_SHORT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 83

  private static final int JVM_SIGNATURE_INT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 73

  private static final int JVM_SIGNATURE_LONG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 74

  private static final int JVM_SIGNATURE_FLOAT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 70

  private static final int JVM_SIGNATURE_DOUBLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  private static final int JVM_SIGNATURE_ARRAY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  private static final int JVM_SIGNATURE_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 76

  private static final long MAX_U4_VALUE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967295

  int serialNum;
    descriptor: I
    flags: (0x0000) 

  private static final int DUMMY_STACK_TRACE_ID;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int EMPTY_FRAME_DEPTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private java.io.DataOutputStream out;
    descriptor: Ljava/io/DataOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.FileOutputStream fos;
    descriptor: Ljava/io/FileOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream hprofBufferedOut;
    descriptor: Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.debugger.Debugger dbg;
    descriptor: Lsun/jvm/hotspot/debugger/Debugger;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.oops.ObjectHeap objectHeap;
    descriptor: Lsun/jvm/hotspot/oops/ObjectHeap;
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<sun.jvm.hotspot.oops.Klass> KlassMap;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lsun/jvm/hotspot/oops/Klass;>;

  private int gzLevel;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int OBJ_ID_SIZE;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean useSegmentedHeapDump;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long currentSegmentStart;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BOOLEAN_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BYTE_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long CHAR_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long SHORT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long INT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long LONG_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long FLOAT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long DOUBLE_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long OBJECT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BOOLEAN_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BYTE_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long CHAR_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long SHORT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long INT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long LONG_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long FLOAT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long DOUBLE_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<sun.jvm.hotspot.oops.InstanceKlass, sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData> classDataCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lsun/jvm/hotspot/oops/InstanceKlass;Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$ClassData;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 314
            ldc Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
         3: .line 1264
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 389
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.<init>:()V
         1: .line 387
            aload 0 /* this */
            iconst_1
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.serialNum:I
         2: .line 1310
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
         3: .line 390
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.KlassMap:Ljava/util/ArrayList;
         4: .line 391
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.names:Ljava/util/HashSet;
         5: .line 392
            aload 0 /* this */
            iconst_0
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.gzLevel:I
         6: .line 393
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int gzLevel
         0: .line 395
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.<init>:()V
         1: .line 387
            aload 0 /* this */
            iconst_1
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.serialNum:I
         2: .line 1310
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
         3: .line 396
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.KlassMap:Ljava/util/ArrayList;
         4: .line 397
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.names:Ljava/util/HashSet;
         5: .line 398
            aload 0 /* this */
            iload 1 /* gzLevel */
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.gzLevel:I
         6: .line 399
            return
        end local 1 // int gzLevel
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1  gzLevel  I
    MethodParameters:
         Name  Flags
      gzLevel  

  public synchronized void write(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.lang.String fileName
         0: .line 402
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            astore 2 /* vm */
        start local 2 // sun.jvm.hotspot.runtime.VM vm
         1: .line 405
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.isCompression:()Z
            ifne 3
         2: .line 406
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.used:()J
            ldc 2147483648
            lcmp
            ifgt 3
            iconst_0
            goto 4
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter java.lang.String sun.jvm.hotspot.runtime.VM
      StackMap stack: sun.jvm.hotspot.utilities.HeapHprofBinWriter
         3: iconst_1
         4: .line 405
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter java.lang.String sun.jvm.hotspot.runtime.VM
      StackMap stack: sun.jvm.hotspot.utilities.HeapHprofBinWriter int
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
         5: .line 409
            aload 0 /* this */
            new java.io.FileOutputStream
            dup
            aload 1 /* fileName */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
         6: .line 410
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
         7: .line 411
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            astore 3 /* dataOut */
        start local 3 // java.io.OutputStream dataOut
         8: .line 412
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 13
         9: .line 413
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.isCompression:()Z
            ifeq 11
        10: .line 414
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$1.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;Ljava/io/OutputStream;)V
            astore 3 /* dataOut */
        11: .line 420
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream
            dup
            aload 0 /* this */
            aload 3 /* dataOut */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;Ljava/io/OutputStream;)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
        12: .line 421
            goto 14
        13: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            iconst_0
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;Ljava/io/OutputStream;Z)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
        14: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.DataOutputStream
            dup
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
        15: .line 425
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getDebugger:()Lsun/jvm/hotspot/debugger/JVMDebugger;
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.dbg:Lsun/jvm/hotspot/debugger/Debugger;
        16: .line 426
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
        17: .line 428
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
        18: .line 430
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_BOOLEAN:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_BASE_OFFSET:J
        19: .line 431
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_BYTE:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_BASE_OFFSET:J
        20: .line 432
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_CHAR:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_BASE_OFFSET:J
        21: .line 433
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_SHORT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_BASE_OFFSET:J
        22: .line 434
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_INT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_BASE_OFFSET:J
        23: .line 435
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_LONG:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_BASE_OFFSET:J
        24: .line 436
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_FLOAT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_BASE_OFFSET:J
        25: .line 437
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_DOUBLE:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_BASE_OFFSET:J
        26: .line 438
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_OBJECT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJECT_BASE_OFFSET:J
        27: .line 440
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getBooleanSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
        28: .line 441
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getByteSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
        29: .line 442
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getCharSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
        30: .line 443
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getShortSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
        31: .line 444
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getIntSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
        32: .line 445
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getLongSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
        33: .line 446
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getFloatSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
        34: .line 447
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getDoubleSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
        35: .line 450
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFileHeader:()V
        36: .line 454
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeDummyTrace:()V
        37: .line 457
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbols:()V
        38: .line 460
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeClasses:()V
        39: .line 463
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.dumpStackTraces:()V
        40: .line 466
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeClassDumpRecords:()V
        41: .line 469
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.write:()V
        42: .line 472
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
        43: .line 474
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifne 46
        44: .line 476
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.fillInHeapRecordLength:()V
        45: .line 477
            goto 50
        46: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream.finish:()V
        47: .line 480
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 44
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        48: .line 481
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        49: .line 482
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        50: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
        51: .line 487
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.close:()V
        52: .line 488
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
        53: .line 489
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
        54: .line 490
            return
        end local 3 // java.io.OutputStream dataOut
        end local 2 // sun.jvm.hotspot.runtime.VM vm
        end local 1 // java.lang.String fileName
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   55     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   55     1  fileName  Ljava/lang/String;
            1   55     2        vm  Lsun/jvm/hotspot/runtime/VM;
            8   55     3   dataOut  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  

  protected void writeHeapRecordPrologue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 494
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 3
         1: .line 495
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream.enterSegmentMode:()V
         2: .line 496
            goto 9
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lconst_0
            lcmp
            ifne 9
         4: .line 498
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 12
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 499
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         6: .line 503
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
         7: .line 504
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
         8: .line 506
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         9: .line 508
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  protected void writeHeapRecordEpilogue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 512
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 2
         1: .line 513
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.hprofBufferedOut:Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$SegmentedOutputStream;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream.exitSegmentMode:()V
         2: .line 515
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void fillInHeapRecordLength();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 518
            getstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "fillInHeapRecordLength is not supported for segmented heap dump"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 1 /* dumpEnd */
        start local 1 // long dumpEnd
         2: .line 524
            lload 1 /* dumpEnd */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lsub
            ldc 4
            lsub
            lstore 3 /* dumpLenLong */
        start local 3 // long dumpLenLong
         3: .line 527
            lload 3 /* dumpLenLong */
            ldc 4294967296
            lcmp
            iflt 5
         4: .line 528
            new java.lang.RuntimeException
            dup
            ldc "Heap segment size overflow."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 532
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 5 /* currentPosition */
        start local 5 // long currentPosition
         6: .line 535
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
         7: .line 538
            lload 3 /* dumpLenLong */
            l2i
            istore 7 /* dumpLen */
        start local 7 // int dumpLen
         8: .line 539
            iload 7 /* dumpLen */
            invokestatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.genByteArrayFromInt:(I)[B
            astore 8 /* lenBytes */
        start local 8 // byte[] lenBytes
         9: .line 540
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            aload 8 /* lenBytes */
            invokevirtual java.io.FileOutputStream.write:([B)V
        10: .line 543
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            lload 5 /* currentPosition */
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
        11: .line 544
            return
        end local 8 // byte[] lenBytes
        end local 7 // int dumpLen
        end local 5 // long currentPosition
        end local 3 // long dumpLenLong
        end local 1 // long dumpEnd
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            2   12     1          dumpEnd  J
            3   12     3      dumpLenLong  J
            6   12     5  currentPosition  J
            8   12     7          dumpLen  I
            9   12     8         lenBytes  [B
    Exceptions:
      throws java.io.IOException

  private long getSizeForType(int);
    descriptor: (I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int type
         0: .line 548
            iload 1 /* type */
            tableswitch { // 4 - 11
                    4: 1
                    5: 3
                    6: 7
                    7: 8
                    8: 5
                    9: 4
                   10: 2
                   11: 6
              default: 9
          }
         1: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
            lreturn
         2: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            lreturn
         3: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
            lreturn
         4: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
            lreturn
         5: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            lreturn
         6: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
            lreturn
         7: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
            lreturn
         8: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
            lreturn
         9: .line 566
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        10: .line 567
            new java.lang.StringBuilder
            dup
            ldc "Should not reach here: Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 566
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int type
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   12     1  type  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      type  

  private int getArrayHeaderSize(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // boolean isObjectAarray
         0: .line 572
            iload 1 /* isObjectAarray */
            ifeq 2
         1: .line 573
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            l2i
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            imul
            iadd
            goto 3
         2: .line 574
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            l2i
            imul
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
         3: .line 572
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 1 // boolean isObjectAarray
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1  isObjectAarray  Z
    MethodParameters:
                Name  Flags
      isObjectAarray  

  private int calculateArrayMaxLength(long, int, long, java.lang.String);
    descriptor: (JIJLjava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=5
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // long originalArrayLength
        start local 3 // int headerSize
        start local 4 // long typeSize
        start local 6 // java.lang.String typeName
         0: .line 583
            lload 1 /* originalArrayLength */
            lstore 7 /* length */
        start local 7 // long length
         1: .line 586
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 9 /* dumpEnd */
        start local 9 // long dumpEnd
         2: .line 587
            lload 1 /* originalArrayLength */
            lload 4 /* typeSize */
            lmul
            lstore 11 /* originalLengthInBytes */
        start local 11 // long originalLengthInBytes
         3: .line 592
            lload 9 /* dumpEnd */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lsub
            ldc 4
            lsub
            lstore 13 /* currentRecordLength */
        start local 13 // long currentRecordLength
         4: .line 593
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifne 10
            lload 13 /* currentRecordLength */
            lconst_0
            lcmp
            ifle 10
         5: .line 594
            lload 13 /* currentRecordLength */
            iload 3 /* headerSize */
            i2l
            ladd
            lload 11 /* originalLengthInBytes */
            ladd
            ldc 4294967295
            lcmp
            ifle 10
         6: .line 595
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.fillInHeapRecordLength:()V
         7: .line 596
            aload 0 /* this */
            lconst_0
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
         8: .line 597
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeapRecordPrologue:()V
         9: .line 598
            lconst_0
            lstore 13 /* currentRecordLength */
        10: .line 602
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter long int long java.lang.String long long long long
      StackMap stack:
            ldc 4294967295
            iload 3 /* headerSize */
            i2l
            lload 13 /* currentRecordLength */
            ladd
            lsub
            lstore 15 /* maxBytes */
        start local 15 // long maxBytes
        11: .line 604
            lload 11 /* originalLengthInBytes */
            lload 15 /* maxBytes */
            lcmp
            ifle 17
        12: .line 605
            lload 15 /* maxBytes */
            lload 4 /* typeSize */
            ldiv
            lstore 7 /* length */
        13: .line 606
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: Cannot dump array of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 607
            ldc " with length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* originalArrayLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        15: .line 608
            ldc "; truncating to length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 7 /* length */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 606
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 610
      StackMap locals: long
      StackMap stack:
            lload 7 /* length */
            l2i
            ireturn
        end local 15 // long maxBytes
        end local 13 // long currentRecordLength
        end local 11 // long originalLengthInBytes
        end local 9 // long dumpEnd
        end local 7 // long length
        end local 6 // java.lang.String typeName
        end local 4 // long typeSize
        end local 3 // int headerSize
        end local 1 // long originalArrayLength
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   18     0                   this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   18     1    originalArrayLength  J
            0   18     3             headerSize  I
            0   18     4               typeSize  J
            0   18     6               typeName  Ljava/lang/String;
            1   18     7                 length  J
            2   18     9                dumpEnd  J
            3   18    11  originalLengthInBytes  J
            4   18    13    currentRecordLength  J
           11   18    15               maxBytes  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      originalArrayLength  
      headerSize           
      typeSize             
      typeName             

  private void writeClassDumpRecords();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 614
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 1 /* cldGraph */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
         1: .line 616
            aload 1 /* cldGraph */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$2
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$2.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
         2: .line 627
            goto 5
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack: java.lang.RuntimeException
         3: astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         4: .line 628
            aload 0 /* this */
            aload 2 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 2 // java.lang.RuntimeException re
         5: .line 630
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1    6     1  cldGraph  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            4    5     2        re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  protected void writeClass(sun.jvm.hotspot.oops.Instance);
    descriptor: (Lsun/jvm/hotspot/oops/Instance;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Instance instance
         0: .line 633
            aload 1 /* instance */
            invokestatic sun.jvm.hotspot.oops.java_lang_Class.asKlass:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* reflectedKlass */
        start local 2 // sun.jvm.hotspot.oops.Klass reflectedKlass
         1: .line 636
            aload 2 /* reflectedKlass */
            ifnonnull 3
         2: .line 637
            aload 0 /* this */
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeInstance:(Lsun/jvm/hotspot/oops/Instance;)V
         3: .line 639
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            return
        end local 2 // sun.jvm.hotspot.oops.Klass reflectedKlass
        end local 1 // sun.jvm.hotspot.oops.Instance instance
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1        instance  Lsun/jvm/hotspot/oops/Instance;
            1    4     2  reflectedKlass  Lsun/jvm/hotspot/oops/Klass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      instance  

  private void writeClassDumpRecord(sun.jvm.hotspot.oops.Klass);
    descriptor: (Lsun/jvm/hotspot/oops/Klass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Klass k
         0: .line 642
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 32
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 643
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         2: .line 644
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 645
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaSuper:()Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* superKlass */
        start local 2 // sun.jvm.hotspot.oops.Klass superKlass
         4: .line 646
            aload 2 /* superKlass */
            ifnull 7
         5: .line 647
            aload 0 /* this */
            aload 2 /* superKlass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         6: .line 648
            goto 8
         7: .line 649
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         8: .line 652
      StackMap locals:
      StackMap stack:
            aload 1 /* k */
            instanceof sun.jvm.hotspot.oops.InstanceKlass
            ifeq 34
         9: .line 653
            aload 1 /* k */
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 3 /* ik */
        start local 3 // sun.jvm.hotspot.oops.InstanceKlass ik
        10: .line 654
            aload 0 /* this */
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getClassLoader:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        11: .line 655
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        12: .line 656
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        13: .line 658
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        14: .line 659
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        15: .line 660
            aload 3 /* ik */
            invokestatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.getInstanceFields:(Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/util/List;
            astore 4 /* fields */
        start local 4 // java.util.List fields
        16: .line 661
            aload 0 /* this */
            aload 4 /* fields */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getSizeForFields:(Ljava/util/List;)I
            istore 5 /* instSize */
        start local 5 // int instSize
        17: .line 662
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
            aload 3 /* ik */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
            dup
            iload 5 /* instSize */
            aload 4 /* fields */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.<init>:(ILjava/util/List;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 663
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* instSize */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        19: .line 667
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        20: .line 669
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
            astore 6 /* declaredFields */
        start local 6 // java.util.List declaredFields
        21: .line 670
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* staticFields */
        start local 7 // java.util.List staticFields
        22: .line 671
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* instanceFields */
        start local 8 // java.util.List instanceFields
        23: .line 672
            aconst_null
            astore 9 /* itr */
        start local 9 // java.util.Iterator itr
        24: .line 673
            aload 6 /* declaredFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* itr */
            goto 30
        25: .line 674
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.InstanceKlass java.util.List int java.util.List java.util.List java.util.List java.util.Iterator
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 10 /* field */
        start local 10 // sun.jvm.hotspot.oops.Field field
        26: .line 675
            aload 10 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
            ifeq 29
        27: .line 676
            aload 7 /* staticFields */
            aload 10 /* field */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 677
            goto 30
        29: .line 678
      StackMap locals: sun.jvm.hotspot.oops.Field
      StackMap stack:
            aload 8 /* instanceFields */
            aload 10 /* field */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // sun.jvm.hotspot.oops.Field field
        30: .line 673
      StackMap locals:
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        31: .line 683
            aload 0 /* this */
            aload 7 /* staticFields */
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFieldDescriptors:(Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
        32: .line 686
            aload 0 /* this */
            aload 8 /* instanceFields */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFieldDescriptors:(Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
        end local 9 // java.util.Iterator itr
        end local 8 // java.util.List instanceFields
        end local 7 // java.util.List staticFields
        end local 6 // java.util.List declaredFields
        end local 5 // int instSize
        end local 4 // java.util.List fields
        end local 3 // sun.jvm.hotspot.oops.InstanceKlass ik
        33: .line 687
            goto 56
        34: .line 688
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 1 /* k */
            instanceof sun.jvm.hotspot.oops.ObjArrayKlass
            ifeq 47
        35: .line 689
            aload 1 /* k */
            checkcast sun.jvm.hotspot.oops.ObjArrayKlass
            astore 3 /* oak */
        start local 3 // sun.jvm.hotspot.oops.ObjArrayKlass oak
        36: .line 690
            aload 3 /* oak */
            invokevirtual sun.jvm.hotspot.oops.ObjArrayKlass.getBottomKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 4 /* bottomKlass */
        start local 4 // sun.jvm.hotspot.oops.Klass bottomKlass
        37: .line 691
            aload 4 /* bottomKlass */
            instanceof sun.jvm.hotspot.oops.InstanceKlass
            ifeq 43
        38: .line 692
            aload 4 /* bottomKlass */
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 5 /* ik */
        start local 5 // sun.jvm.hotspot.oops.InstanceKlass ik
        39: .line 693
            aload 0 /* this */
            aload 5 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getClassLoader:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        40: .line 694
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        41: .line 695
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        end local 5 // sun.jvm.hotspot.oops.InstanceKlass ik
        42: .line 696
            goto 50
        43: .line 697
      StackMap locals: sun.jvm.hotspot.oops.ObjArrayKlass sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        44: .line 698
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        45: .line 699
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        end local 4 // sun.jvm.hotspot.oops.Klass bottomKlass
        end local 3 // sun.jvm.hotspot.oops.ObjArrayKlass oak
        46: .line 701
            goto 50
        47: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        48: .line 703
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        49: .line 704
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        50: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        51: .line 708
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        52: .line 711
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        53: .line 713
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        54: .line 715
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        55: .line 717
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        56: .line 719
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.jvm.hotspot.oops.Klass superKlass
        end local 1 // sun.jvm.hotspot.oops.Klass k
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   57     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   57     1               k  Lsun/jvm/hotspot/oops/Klass;
            4   57     2      superKlass  Lsun/jvm/hotspot/oops/Klass;
           10   33     3              ik  Lsun/jvm/hotspot/oops/InstanceKlass;
           16   33     4          fields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
           17   33     5        instSize  I
           21   33     6  declaredFields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
           22   33     7    staticFields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
           23   33     8  instanceFields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
           24   33     9             itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
           26   30    10           field  Lsun/jvm/hotspot/oops/Field;
           36   46     3             oak  Lsun/jvm/hotspot/oops/ObjArrayKlass;
           37   46     4     bottomKlass  Lsun/jvm/hotspot/oops/Klass;
           39   42     5              ik  Lsun/jvm/hotspot/oops/InstanceKlass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      k     

  private void dumpStackTraces();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 723
            aload 0 /* this */
            iconst_5
            iconst_3
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         1: .line 724
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 725
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 726
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 728
            iconst_0
            istore 1 /* frameSerialNum */
        start local 1 // int frameSerialNum
         5: .line 729
            iconst_0
            istore 2 /* numThreads */
        start local 2 // int numThreads
         6: .line 730
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            astore 3 /* threads */
        start local 3 // sun.jvm.hotspot.runtime.Threads threads
         7: .line 731
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         8: goto 37
         9: .line 732
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads int
      StackMap stack:
            aload 3 /* threads */
            iload 4 /* i */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getJavaThreadAt:(I)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 5 /* thread */
        start local 5 // sun.jvm.hotspot.runtime.JavaThread thread
        10: .line 733
            aload 5 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadObj:()Lsun/jvm/hotspot/oops/Oop;
            astore 6 /* threadObj */
        start local 6 // sun.jvm.hotspot.oops.Oop threadObj
        11: .line 734
            aload 6 /* threadObj */
            ifnull 36
            aload 5 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.isExiting:()Z
            ifne 36
            aload 5 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.isHiddenFromExternalView:()Z
            ifne 36
        12: .line 737
            new sun.jvm.hotspot.runtime.ThreadStackTrace
            dup
            aload 5 /* thread */
            invokespecial sun.jvm.hotspot.runtime.ThreadStackTrace.<init>:(Lsun/jvm/hotspot/runtime/JavaThread;)V
            astore 7 /* st */
        start local 7 // sun.jvm.hotspot.runtime.ThreadStackTrace st
        13: .line 738
            aload 7 /* st */
            iconst_m1
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.dumpStack:(I)V
        14: .line 739
            iinc 2 /* numThreads */ 1
        15: .line 742
            aload 7 /* st */
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.getStackDepth:()I
            istore 8 /* depth */
        start local 8 // int depth
        16: .line 743
            iload 1 /* frameSerialNum */
            istore 9 /* threadFrameStart */
        start local 9 // int threadFrameStart
        17: .line 744
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        18: goto 25
        19: .line 745
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads int sun.jvm.hotspot.runtime.JavaThread sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.runtime.ThreadStackTrace int int int
      StackMap stack:
            aload 7 /* st */
            iload 10 /* j */
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.stackFrameAt:(I)Lsun/jvm/hotspot/runtime/StackFrameInfo;
            astore 11 /* frame */
        start local 11 // sun.jvm.hotspot.runtime.StackFrameInfo frame
        20: .line 746
            aload 11 /* frame */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameInfo.getMethod:()Lsun/jvm/hotspot/oops/Method;
            astore 12 /* m */
        start local 12 // sun.jvm.hotspot.oops.Method m
        21: .line 747
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.KlassMap:Ljava/util/ArrayList;
            aload 12 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getMethodHolder:()Lsun/jvm/hotspot/oops/InstanceKlass;
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            iconst_1
            iadd
            istore 13 /* classSerialNum */
        start local 13 // int classSerialNum
        22: .line 749
            getstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
            ifne 23
            iload 13 /* classSerialNum */
            ifgt 23
            new java.lang.AssertionError
            dup
            ldc "class not found"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        23: .line 750
      StackMap locals: sun.jvm.hotspot.runtime.StackFrameInfo sun.jvm.hotspot.oops.Method int
      StackMap stack:
            aload 0 /* this */
            iinc 1 /* frameSerialNum */ 1
            iload 1 /* frameSerialNum */
            iload 13 /* classSerialNum */
            aload 12 /* m */
            aload 11 /* frame */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameInfo.getBCI:()I
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.dumpStackFrame:(IILsun/jvm/hotspot/oops/Method;I)V
        end local 13 // int classSerialNum
        end local 12 // sun.jvm.hotspot.oops.Method m
        end local 11 // sun.jvm.hotspot.runtime.StackFrameInfo frame
        24: .line 744
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        25: iload 10 /* j */
            iload 8 /* depth */
            if_icmplt 19
        end local 10 // int j
        26: .line 754
            aload 0 /* this */
            iconst_5
            iconst_3
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iload 8 /* depth */
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            imul
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
        27: .line 755
            iload 2 /* numThreads */
            iconst_1
            iadd
            istore 10 /* stackSerialNum */
        start local 10 // int stackSerialNum
        28: .line 756
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 10 /* stackSerialNum */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        29: .line 757
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* numThreads */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        30: .line 758
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 8 /* depth */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        31: .line 759
            iconst_1
            istore 11 /* j */
        start local 11 // int j
        32: goto 35
        33: .line 760
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 9 /* threadFrameStart */
            iload 11 /* j */
            iadd
            i2l
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        34: .line 759
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        35: iload 11 /* j */
            iload 8 /* depth */
            if_icmple 33
        end local 11 // int j
        end local 10 // int stackSerialNum
        end local 9 // int threadFrameStart
        end local 8 // int depth
        end local 7 // sun.jvm.hotspot.runtime.ThreadStackTrace st
        end local 6 // sun.jvm.hotspot.oops.Oop threadObj
        end local 5 // sun.jvm.hotspot.runtime.JavaThread thread
        36: .line 731
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 4 /* i */
            aload 3 /* threads */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getNumberOfThreads:()I
            if_icmplt 9
        end local 4 // int i
        38: .line 764
            return
        end local 3 // sun.jvm.hotspot.runtime.Threads threads
        end local 2 // int numThreads
        end local 1 // int frameSerialNum
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0              this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            5   39     1    frameSerialNum  I
            6   39     2        numThreads  I
            7   39     3           threads  Lsun/jvm/hotspot/runtime/Threads;
            8   38     4                 i  I
           10   36     5            thread  Lsun/jvm/hotspot/runtime/JavaThread;
           11   36     6         threadObj  Lsun/jvm/hotspot/oops/Oop;
           13   36     7                st  Lsun/jvm/hotspot/runtime/ThreadStackTrace;
           16   36     8             depth  I
           17   36     9  threadFrameStart  I
           18   26    10                 j  I
           20   24    11             frame  Lsun/jvm/hotspot/runtime/StackFrameInfo;
           21   24    12                 m  Lsun/jvm/hotspot/oops/Method;
           22   24    13    classSerialNum  I
           28   36    10    stackSerialNum  I
           32   36    11                 j  I
    Exceptions:
      throws java.io.IOException

  private void dumpStackFrame(int, int, sun.jvm.hotspot.oops.Method, int);
    descriptor: (IILsun/jvm/hotspot/oops/Method;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int frameSN
        start local 2 // int classSN
        start local 3 // sun.jvm.hotspot.oops.Method m
        start local 4 // int bci
         0: .line 768
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.isNative:()Z
            ifeq 3
         1: .line 769
            bipush -3
            istore 5 /* lineNumber */
        start local 5 // int lineNumber
         2: .line 770
            goto 4
        end local 5 // int lineNumber
         3: .line 771
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            iload 4 /* bci */
            invokevirtual sun.jvm.hotspot.oops.Method.getLineNumberFromBCI:(I)I
            istore 5 /* lineNumber */
        start local 5 // int lineNumber
         4: .line 774
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbol:(Lsun/jvm/hotspot/oops/Symbol;)V
         5: .line 775
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbol:(Lsun/jvm/hotspot/oops/Symbol;)V
         6: .line 776
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getMethodHolder:()Lsun/jvm/hotspot/oops/InstanceKlass;
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSourceFileName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbol:(Lsun/jvm/hotspot/oops/Symbol;)V
         7: .line 778
            aload 0 /* this */
            iconst_4
            iconst_4
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            imul
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         8: .line 779
            aload 0 /* this */
            iload 1 /* frameSN */
            i2l
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         9: .line 780
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
        10: .line 781
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
        11: .line 782
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getMethodHolder:()Lsun/jvm/hotspot/oops/InstanceKlass;
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSourceFileName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
        12: .line 783
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* classSN */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        13: .line 784
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* lineNumber */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        14: .line 785
            return
        end local 5 // int lineNumber
        end local 4 // int bci
        end local 3 // sun.jvm.hotspot.oops.Method m
        end local 2 // int classSN
        end local 1 // int frameSN
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   15     1     frameSN  I
            0   15     2     classSN  I
            0   15     3           m  Lsun/jvm/hotspot/oops/Method;
            0   15     4         bci  I
            2    3     5  lineNumber  I
            4   15     5  lineNumber  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      frameSN  
      classSN  
      m        
      bci      

  protected void writeJavaThread(sun.jvm.hotspot.runtime.JavaThread, int);
    descriptor: (Lsun/jvm/hotspot/runtime/JavaThread;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        start local 2 // int index
         0: .line 788
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 8
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 789
            aload 0 /* this */
            aload 1 /* jt */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadObj:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         2: .line 790
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* index */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 791
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 792
            aload 0 /* this */
            aload 1 /* jt */
            iload 2 /* index */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeLocalJNIHandles:(Lsun/jvm/hotspot/runtime/JavaThread;I)V
         5: .line 793
            return
        end local 2 // int index
        end local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    6     1     jt  Lsun/jvm/hotspot/runtime/JavaThread;
            0    6     2  index  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      jt     
      index  

  protected void writeLocalJNIHandles(sun.jvm.hotspot.runtime.JavaThread, int);
    descriptor: (Lsun/jvm/hotspot/runtime/JavaThread;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        start local 2 // int index
         0: .line 796
            iload 2 /* index */
            istore 3 /* threadIndex */
        start local 3 // int threadIndex
         1: .line 797
            aload 1 /* jt */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.activeHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 4 /* blk */
        start local 4 // sun.jvm.hotspot.runtime.JNIHandleBlock blk
         2: .line 798
            aload 4 /* blk */
            ifnull 7
         3: .line 800
            aload 4 /* blk */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$3
            dup
            aload 0 /* this */
            iload 3 /* threadIndex */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$3.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;I)V
            invokevirtual sun.jvm.hotspot.runtime.JNIHandleBlock.oopsDo:(Lsun/jvm/hotspot/runtime/AddressVisitor;)V
         4: .line 823
            goto 7
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.runtime.JavaThread int int sun.jvm.hotspot.runtime.JNIHandleBlock
      StackMap stack: java.lang.RuntimeException
         5: astore 5 /* re */
        start local 5 // java.lang.RuntimeException re
         6: .line 824
            aload 0 /* this */
            aload 5 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 5 // java.lang.RuntimeException re
         7: .line 827
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.jvm.hotspot.runtime.JNIHandleBlock blk
        end local 3 // int threadIndex
        end local 2 // int index
        end local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    8     1           jt  Lsun/jvm/hotspot/runtime/JavaThread;
            0    8     2        index  I
            1    8     3  threadIndex  I
            2    8     4          blk  Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            6    7     5           re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      jt     
      index  

  protected void writeGlobalJNIHandle(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.debugger.Address handleAddr
         0: .line 830
            aload 1 /* handleAddr */
            lconst_0
            invokeinterface sun.jvm.hotspot.debugger.Address.getOopHandleAt:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 2 /* oopHandle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
         1: .line 831
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            aload 2 /* oopHandle */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.newOop:(Lsun/jvm/hotspot/debugger/OopHandle;)Lsun/jvm/hotspot/oops/Oop;
            astore 3 /* oop */
        start local 3 // sun.jvm.hotspot.oops.Oop oop
         2: .line 833
            aload 3 /* oop */
            ifnull 6
            aload 0 /* this */
            aload 3 /* oop */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.isJavaVisible:(Lsun/jvm/hotspot/oops/Oop;)Z
            ifeq 6
         3: .line 834
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 835
            aload 0 /* this */
            aload 3 /* oop */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         5: .line 837
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* handleAddr */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         6: .line 839
      StackMap locals: sun.jvm.hotspot.debugger.OopHandle sun.jvm.hotspot.oops.Oop
      StackMap stack:
            return
        end local 3 // sun.jvm.hotspot.oops.Oop oop
        end local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
        end local 1 // sun.jvm.hotspot.debugger.Address handleAddr
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1  handleAddr  Lsun/jvm/hotspot/debugger/Address;
            1    7     2   oopHandle  Lsun/jvm/hotspot/debugger/OopHandle;
            2    7     3         oop  Lsun/jvm/hotspot/oops/Oop;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      handleAddr  

  protected void writeObjectArray(sun.jvm.hotspot.oops.ObjArray);
    descriptor: (Lsun/jvm/hotspot/oops/ObjArray;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.ObjArray array
         0: .line 842
            aload 0 /* this */
            iconst_1
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getArrayHeaderSize:(Z)I
            istore 2 /* headerSize */
        start local 2 // int headerSize
         1: .line 843
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getLength:()J
         2: .line 844
            iload 2 /* headerSize */
         3: .line 845
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            i2l
         4: .line 846
            ldc "Object"
         5: .line 843
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.calculateArrayMaxLength:(JIJLjava/lang/String;)I
            istore 3 /* length */
        start local 3 // int length
         6: .line 847
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 34
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 848
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         8: .line 849
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         9: .line 850
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 3 /* length */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        10: .line 851
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        11: .line 852
            iconst_0
            istore 4 /* index */
        start local 4 // int index
        12: goto 16
        13: .line 853
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* array */
            iload 4 /* index */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getOopHandleAt:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 5 /* handle */
        start local 5 // sun.jvm.hotspot.debugger.OopHandle handle
        14: .line 854
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 5 // sun.jvm.hotspot.debugger.OopHandle handle
        15: .line 852
            iinc 4 /* index */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* index */
            iload 3 /* length */
            if_icmplt 13
        end local 4 // int index
        17: .line 856
            return
        end local 3 // int length
        end local 2 // int headerSize
        end local 1 // sun.jvm.hotspot.oops.ObjArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   18     1       array  Lsun/jvm/hotspot/oops/ObjArray;
            1   18     2  headerSize  I
            6   18     3      length  I
           12   17     4       index  I
           14   15     5      handle  Lsun/jvm/hotspot/debugger/OopHandle;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      array  

  protected void writePrimitiveArray(sun.jvm.hotspot.oops.TypeArray);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
         0: .line 859
            aload 0 /* this */
            iconst_0
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getArrayHeaderSize:(Z)I
            istore 2 /* headerSize */
        start local 2 // int headerSize
         1: .line 860
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.TypeArrayKlass
            astore 3 /* tak */
        start local 3 // sun.jvm.hotspot.oops.TypeArrayKlass tak
         2: .line 861
            aload 3 /* tak */
            invokevirtual sun.jvm.hotspot.oops.TypeArrayKlass.getElementType:()I
            istore 4 /* type */
        start local 4 // int type
         3: .line 862
            aload 3 /* tak */
            invokevirtual sun.jvm.hotspot.oops.TypeArrayKlass.getElementTypeName:()Ljava/lang/String;
            astore 5 /* typeName */
        start local 5 // java.lang.String typeName
         4: .line 863
            aload 0 /* this */
            iload 4 /* type */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getSizeForType:(I)J
            lstore 6 /* typeSize */
        start local 6 // long typeSize
         5: .line 864
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
         6: .line 865
            iload 2 /* headerSize */
         7: .line 866
            lload 6 /* typeSize */
         8: .line 867
            aload 5 /* typeName */
         9: .line 864
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.calculateArrayMaxLength:(JIJLjava/lang/String;)I
            istore 8 /* length */
        start local 8 // int length
        10: .line 868
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 35
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        11: .line 869
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        12: .line 870
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        13: .line 871
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 8 /* length */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        14: .line 872
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 4 /* type */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        15: .line 873
            iload 4 /* type */
            tableswitch { // 4 - 11
                    4: 16
                    5: 18
                    6: 20
                    7: 22
                    8: 24
                    9: 26
                   10: 28
                   11: 30
              default: 32
          }
        16: .line 875
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.TypeArray int sun.jvm.hotspot.oops.TypeArrayKlass int java.lang.String long int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeBooleanArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        17: .line 876
            goto 35
        18: .line 878
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeCharArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        19: .line 879
            goto 35
        20: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFloatArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        21: .line 882
            goto 35
        22: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeDoubleArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        23: .line 885
            goto 35
        24: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeByteArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        25: .line 888
            goto 35
        26: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeShortArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        27: .line 891
            goto 35
        28: .line 893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeIntArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        29: .line 894
            goto 35
        30: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeLongArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        31: .line 897
            goto 35
        32: .line 899
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        33: .line 900
            new java.lang.StringBuilder
            dup
            ldc "Should not reach here: Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 899
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 902
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int length
        end local 6 // long typeSize
        end local 5 // java.lang.String typeName
        end local 4 // int type
        end local 3 // sun.jvm.hotspot.oops.TypeArrayKlass tak
        end local 2 // int headerSize
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   36     1       array  Lsun/jvm/hotspot/oops/TypeArray;
            1   36     2  headerSize  I
            2   36     3         tak  Lsun/jvm/hotspot/oops/TypeArrayKlass;
            3   36     4        type  I
            4   36     5    typeName  Ljava/lang/String;
            5   36     6    typeSize  J
           10   36     8      length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      array  

  private void writeBooleanArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 905
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 906
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 907
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJBooleanAt:(J)Z
            invokevirtual java.io.DataOutputStream.writeBoolean:(Z)V
        end local 4 // long offset
         4: .line 905
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 909
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeByteArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 912
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 913
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 914
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJByteAt:(J)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        end local 4 // long offset
         4: .line 912
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 916
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeShortArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 919
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 920
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 921
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJShortAt:(J)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        end local 4 // long offset
         4: .line 919
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 923
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeIntArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 926
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 927
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 928
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJIntAt:(J)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        end local 4 // long offset
         4: .line 926
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 930
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeLongArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 933
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 934
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 935
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJLongAt:(J)J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
        end local 4 // long offset
         4: .line 933
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 937
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeCharArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 940
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 941
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 942
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJCharAt:(J)C
            invokevirtual java.io.DataOutputStream.writeChar:(I)V
        end local 4 // long offset
         4: .line 940
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 944
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeFloatArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 947
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 948
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 949
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJFloatAt:(J)F
            invokevirtual java.io.DataOutputStream.writeFloat:(F)V
        end local 4 // long offset
         4: .line 947
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 951
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeDoubleArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 954
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 955
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 956
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJDoubleAt:(J)D
            invokevirtual java.io.DataOutputStream.writeDouble:(D)V
        end local 4 // long offset
         4: .line 954
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 958
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  protected void writeInstance(sun.jvm.hotspot.oops.Instance);
    descriptor: (Lsun/jvm/hotspot/oops/Instance;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Instance instance
         0: .line 961
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.oops.Instance.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* klass */
        start local 2 // sun.jvm.hotspot.oops.Klass klass
         1: .line 962
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getClassLoaderData:()Lsun/jvm/hotspot/classfile/ClassLoaderData;
            ifnonnull 3
         2: .line 965
            return
         3: .line 968
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 33
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 969
            aload 0 /* this */
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         5: .line 970
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         6: .line 971
            aload 0 /* this */
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         7: .line 973
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
            aload 2 /* klass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
            astore 3 /* cd */
        start local 3 // sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData cd
         8: .line 975
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 12
         9: .line 976
            aload 3 /* cd */
            ifnull 10
            iconst_1
            goto 11
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: new java.lang.StringBuilder
            dup
            ldc "can not get class data for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        12: .line 978
      StackMap locals:
      StackMap stack:
            aload 3 /* cd */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.fields:Ljava/util/List;
            astore 4 /* fields */
        start local 4 // java.util.List fields
        13: .line 979
            aload 3 /* cd */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.instSize:I
            istore 5 /* size */
        start local 5 // int size
        14: .line 980
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* size */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        15: .line 981
            aload 4 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* itr */
        start local 6 // java.util.Iterator itr
        16: goto 18
        17: .line 982
      StackMap locals: java.util.List int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 6 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeField:(Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
        18: .line 981
      StackMap locals:
      StackMap stack:
            aload 6 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        end local 6 // java.util.Iterator itr
        19: .line 984
            return
        end local 5 // int size
        end local 4 // java.util.List fields
        end local 3 // sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData cd
        end local 2 // sun.jvm.hotspot.oops.Klass klass
        end local 1 // sun.jvm.hotspot.oops.Instance instance
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   20     1  instance  Lsun/jvm/hotspot/oops/Instance;
            1   20     2     klass  Lsun/jvm/hotspot/oops/Klass;
            8   20     3        cd  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$ClassData;
           13   20     4    fields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
           14   20     5      size  I
           16   19     6       itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      instance  

  private void writeFieldDescriptors(java.util.List<sun.jvm.hotspot.oops.Field>, sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.util.List fields
        start local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
         0: .line 991
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* fields */
            invokeinterface java.util.List.size:()I
            i2s
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         1: .line 992
            aload 1 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* itr */
        start local 3 // java.util.Iterator itr
         2: goto 11
         3: .line 993
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 4 /* field */
        start local 4 // sun.jvm.hotspot.oops.Field field
         4: .line 994
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getName:()Lsun/jvm/hotspot/oops/Symbol;
            astore 5 /* name */
        start local 5 // sun.jvm.hotspot.oops.Symbol name
         5: .line 995
            aload 0 /* this */
            aload 5 /* name */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         6: .line 996
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 6 /* typeCode */
        start local 6 // char typeCode
         7: .line 997
            iload 6 /* typeCode */
            invokestatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.signatureToHprofKind:(C)I
            istore 7 /* kind */
        start local 7 // int kind
         8: .line 998
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 7 /* kind */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         9: .line 999
            aload 2 /* ik */
            ifnull 11
        10: .line 1001
            aload 0 /* this */
            aload 4 /* field */
            aload 2 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeField:(Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
        end local 7 // int kind
        end local 6 // char typeCode
        end local 5 // sun.jvm.hotspot.oops.Symbol name
        end local 4 // sun.jvm.hotspot.oops.Field field
        11: .line 992
      StackMap locals:
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator itr
        12: .line 1004
            return
        end local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
        end local 1 // java.util.List fields
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   13     1    fields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
            0   13     2        ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            2   12     3       itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
            4   11     4     field  Lsun/jvm/hotspot/oops/Field;
            5   11     5      name  Lsun/jvm/hotspot/oops/Symbol;
            7   11     6  typeCode  C
            8   11     7      kind  I
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;Lsun/jvm/hotspot/oops/InstanceKlass;)V
    MethodParameters:
        Name  Flags
      fields  
      ik      

  public static int signatureToHprofKind(char);
    descriptor: (C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char ch
         0: .line 1007
            iload 0 /* ch */
            lookupswitch { // 10
                   66: 6
                   67: 3
                   68: 5
                   70: 4
                   73: 8
                   74: 9
                   76: 1
                   83: 7
                   90: 2
                   91: 1
              default: 10
          }
         1: .line 1010
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         2: .line 1012
      StackMap locals:
      StackMap stack:
            iconst_4
            ireturn
         3: .line 1014
      StackMap locals:
      StackMap stack:
            iconst_5
            ireturn
         4: .line 1016
      StackMap locals:
      StackMap stack:
            bipush 6
            ireturn
         5: .line 1018
      StackMap locals:
      StackMap stack:
            bipush 7
            ireturn
         6: .line 1020
      StackMap locals:
      StackMap stack:
            bipush 8
            ireturn
         7: .line 1022
      StackMap locals:
      StackMap stack:
            bipush 9
            ireturn
         8: .line 1024
      StackMap locals:
      StackMap stack:
            bipush 10
            ireturn
         9: .line 1026
      StackMap locals:
      StackMap stack:
            bipush 11
            ireturn
        10: .line 1028
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private void writeField(sun.jvm.hotspot.oops.Field, sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Field field
        start local 2 // sun.jvm.hotspot.oops.Oop oop
         0: .line 1033
            aload 1 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 3 /* typeCode */
        start local 3 // char typeCode
         1: .line 1034
            iload 3 /* typeCode */
            lookupswitch { // 10
                   66: 6
                   67: 4
                   68: 16
                   70: 14
                   73: 10
                   74: 12
                   76: 18
                   83: 8
                   90: 2
                   91: 18
              default: 25
          }
         2: .line 1036
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.BooleanField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.BooleanField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Z
            invokevirtual java.io.DataOutputStream.writeBoolean:(Z)V
         3: .line 1037
            goto 26
         4: .line 1039
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.CharField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.CharField.getValue:(Lsun/jvm/hotspot/oops/Oop;)C
            invokevirtual java.io.DataOutputStream.writeChar:(I)V
         5: .line 1040
            goto 26
         6: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.ByteField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1043
            goto 26
         8: .line 1045
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.ShortField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.ShortField.getValue:(Lsun/jvm/hotspot/oops/Oop;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         9: .line 1046
            goto 26
        10: .line 1048
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.IntField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        11: .line 1049
            goto 26
        12: .line 1051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.LongField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
        13: .line 1052
            goto 26
        14: .line 1054
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.FloatField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.FloatField.getValue:(Lsun/jvm/hotspot/oops/Oop;)F
            invokevirtual java.io.DataOutputStream.writeFloat:(F)V
        15: .line 1055
            goto 26
        16: .line 1057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.DoubleField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.DoubleField.getValue:(Lsun/jvm/hotspot/oops/Oop;)D
            invokevirtual java.io.DataOutputStream.writeDouble:(D)V
        17: .line 1058
            goto 26
        18: .line 1061
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.isCompressedOopsEnabled:()Z
            ifeq 22
        19: .line 1062
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.NarrowOopField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.NarrowOopField.getValueAsOopHandle:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 4 /* handle */
        start local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        20: .line 1063
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        21: .line 1064
            goto 26
        22: .line 1065
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.OopField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValueAsOopHandle:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 4 /* handle */
        start local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        23: .line 1066
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        24: .line 1068
            goto 26
        25: .line 1071
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 1073
      StackMap locals:
      StackMap stack:
            return
        end local 3 // char typeCode
        end local 2 // sun.jvm.hotspot.oops.Oop oop
        end local 1 // sun.jvm.hotspot.oops.Field field
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   27     1     field  Lsun/jvm/hotspot/oops/Field;
            0   27     2       oop  Lsun/jvm/hotspot/oops/Oop;
            1   27     3  typeCode  C
           20   21     4    handle  Lsun/jvm/hotspot/debugger/OopHandle;
           23   24     4    handle  Lsun/jvm/hotspot/debugger/OopHandle;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      field  
      oop    

  private void writeHeader(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int tag
        start local 2 // int len
         0: .line 1076
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 1 /* tag */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 1077
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1078
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* len */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1079
            return
        end local 2 // int len
        end local 1 // int tag
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1   tag  I
            0    4     2   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      tag   
      len   

  private void writeDummyTrace();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1082
            aload 0 /* this */
            iconst_5
            bipush 12
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         1: .line 1083
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1084
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1085
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 1086
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void writeClassSymbols(sun.jvm.hotspot.oops.Klass);
    descriptor: (Lsun/jvm/hotspot/oops/Klass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Klass k
         0: .line 1089
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbol:(Lsun/jvm/hotspot/oops/Symbol;)V
         1: .line 1090
            aload 1 /* k */
            instanceof sun.jvm.hotspot.oops.InstanceKlass
            ifeq 9
         2: .line 1091
            aload 1 /* k */
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 2 /* ik */
        start local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
         3: .line 1092
            aload 2 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
            astore 3 /* declaredFields */
        start local 3 // java.util.List declaredFields
         4: .line 1093
            aload 3 /* declaredFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* itr */
        start local 4 // java.util.Iterator itr
         5: goto 8
         6: .line 1094
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass java.util.List java.util.Iterator
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 5 /* field */
        start local 5 // sun.jvm.hotspot.oops.Field field
         7: .line 1095
            aload 0 /* this */
            aload 5 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbol:(Lsun/jvm/hotspot/oops/Symbol;)V
        end local 5 // sun.jvm.hotspot.oops.Field field
         8: .line 1093
      StackMap locals:
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // java.util.Iterator itr
        end local 3 // java.util.List declaredFields
        end local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
         9: .line 1098
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.oops.Klass k
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   10     1               k  Lsun/jvm/hotspot/oops/Klass;
            3    9     2              ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            4    9     3  declaredFields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
            5    9     4             itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
            7    8     5           field  Lsun/jvm/hotspot/oops/Field;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      k     

  private void writeSymbols();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1102
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 1 /* cldGraph */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
         1: .line 1104
            aload 1 /* cldGraph */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$4
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$4.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
         2: .line 1113
            goto 5
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack: java.lang.RuntimeException
         3: astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         4: .line 1114
            aload 0 /* this */
            aload 2 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 2 // java.lang.RuntimeException re
         5: .line 1116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1    6     1  cldGraph  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            4    5     2        re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  private void writeSymbol(sun.jvm.hotspot.oops.Symbol);
    descriptor: (Lsun/jvm/hotspot/oops/Symbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Symbol sym
         0: .line 1120
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.names:Ljava/util/HashSet;
            aload 1 /* sym */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 9
         1: .line 1121
            aload 1 /* sym */
            ifnull 7
         2: .line 1122
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 2 /* buf */
        start local 2 // byte[] buf
         3: .line 1123
            aload 0 /* this */
            iconst_1
            aload 2 /* buf */
            arraylength
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         4: .line 1124
            aload 0 /* this */
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         5: .line 1125
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 2 /* buf */
            invokevirtual java.io.DataOutputStream.write:([B)V
        end local 2 // byte[] buf
         6: .line 1126
            goto 9
         7: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iconst_0
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         8: .line 1128
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         9: .line 1131
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.oops.Symbol sym
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   10     1   sym  Lsun/jvm/hotspot/oops/Symbol;
            3    6     2   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      sym   

  private void writeClasses();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1135
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 1 /* cldGraph */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
         1: .line 1137
            aload 1 /* cldGraph */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$5
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$5.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
         2: .line 1153
            goto 5
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack: java.lang.RuntimeException
         3: astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         4: .line 1154
            aload 0 /* this */
            aload 2 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 2 // java.lang.RuntimeException re
         5: .line 1156
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1    6     1  cldGraph  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            4    5     2        re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  private void writeFileHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1161
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            ldc "JAVA PROFILE 1.0.2"
            invokevirtual java.io.DataOutputStream.writeBytes:(Ljava/lang/String;)V
         1: .line 1162
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1165
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1168
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         4: .line 1169
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void writeObjectID(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Oop oop
         0: .line 1173
            aload 1 /* oop */
            ifnull 1
            aload 1 /* oop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.debugger.OopHandle
         2: astore 2 /* handle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle handle
         3: .line 1174
            aload 0 /* this */
            aload 2 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            lstore 3 /* address */
        start local 3 // long address
         4: .line 1175
            aload 0 /* this */
            lload 3 /* address */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         5: .line 1176
            return
        end local 3 // long address
        end local 2 // sun.jvm.hotspot.debugger.OopHandle handle
        end local 1 // sun.jvm.hotspot.oops.Oop oop
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    6     1      oop  Lsun/jvm/hotspot/oops/Oop;
            3    6     2   handle  Lsun/jvm/hotspot/debugger/OopHandle;
            4    6     3  address  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oop   

  private void writeSymbolID(sun.jvm.hotspot.oops.Symbol);
    descriptor: (Lsun/jvm/hotspot/oops/Symbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Symbol sym
         0: .line 1179
            getstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.names:Ljava/util/HashSet;
            aload 1 /* sym */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1180
      StackMap locals:
      StackMap stack:
            aload 1 /* sym */
            ifnull 2
            aload 0 /* this */
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
      StackMap locals:
      StackMap stack: long
         3: lstore 2 /* address */
        start local 2 // long address
         4: .line 1181
            aload 0 /* this */
            lload 2 /* address */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         5: .line 1182
            return
        end local 2 // long address
        end local 1 // sun.jvm.hotspot.oops.Symbol sym
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    6     1      sym  Lsun/jvm/hotspot/oops/Symbol;
            4    6     2  address  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      sym   

  private void writeObjectID(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // long address
         0: .line 1185
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iconst_4
            if_icmpne 3
         1: .line 1186
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            lload 1 /* address */
            l2i
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1187
            goto 4
         3: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            lload 1 /* address */
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         4: .line 1190
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long address
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    5     1  address  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  

  private long getAddressValue(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 1193
            aload 1 /* addr */
            ifnonnull 1
            lconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.dbg:Lsun/jvm/hotspot/debugger/Debugger;
            aload 1 /* addr */
            invokeinterface sun.jvm.hotspot.debugger.Debugger.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    3     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  private static java.util.List<sun.jvm.hotspot.oops.Field> getInstanceFields(sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // sun.jvm.hotspot.oops.InstanceKlass ik
         0: .line 1198
            aload 0 /* ik */
            astore 1 /* klass */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass klass
         1: .line 1199
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* res */
        start local 2 // java.util.List res
         2: .line 1200
            goto 11
         3: .line 1201
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass java.util.List
      StackMap stack:
            aload 1 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
            astore 3 /* curFields */
        start local 3 // java.util.List curFields
         4: .line 1202
            aload 3 /* curFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* itr */
        start local 4 // java.util.Iterator itr
         5: goto 9
         6: .line 1203
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 5 /* f */
        start local 5 // sun.jvm.hotspot.oops.Field f
         7: .line 1204
            aload 5 /* f */
            invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
            ifne 9
         8: .line 1205
            aload 2 /* res */
            aload 5 /* f */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // sun.jvm.hotspot.oops.Field f
         9: .line 1202
      StackMap locals:
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // java.util.Iterator itr
        10: .line 1208
            aload 1 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSuper:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 1 /* klass */
        end local 3 // java.util.List curFields
        11: .line 1200
      StackMap locals:
      StackMap stack:
            aload 1 /* klass */
            ifnonnull 3
        12: .line 1210
            aload 2 /* res */
            areturn
        end local 2 // java.util.List res
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass klass
        end local 0 // sun.jvm.hotspot.oops.InstanceKlass ik
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0         ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            1   13     1      klass  Lsun/jvm/hotspot/oops/InstanceKlass;
            2   13     2        res  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
            4   11     3  curFields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
            5   10     4        itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
            7    9     5          f  Lsun/jvm/hotspot/oops/Field;
    Signature: (Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
    MethodParameters:
      Name  Flags
      ik    

  private int getSizeForFields(java.util.List<sun.jvm.hotspot.oops.Field>);
    descriptor: (Ljava/util/List;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.util.List fields
         0: .line 1217
            iconst_0
            istore 2 /* size */
        start local 2 // int size
         1: .line 1218
            aload 1 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* itr */
        start local 3 // java.util.Iterator itr
         2: goto 17
         3: .line 1219
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 4 /* field */
        start local 4 // sun.jvm.hotspot.oops.Field field
         4: .line 1220
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 5 /* typeCode */
        start local 5 // char typeCode
         5: .line 1221
            iload 5 /* typeCode */
            lookupswitch { // 10
                   66: 6
                   67: 8
                   68: 14
                   70: 10
                   73: 10
                   74: 14
                   76: 12
                   83: 8
                   90: 6
                   91: 12
              default: 16
          }
         6: .line 1224
      StackMap locals: sun.jvm.hotspot.oops.Field int
      StackMap stack:
            iinc 2 /* size */ 1
         7: .line 1225
            goto 17
         8: .line 1228
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 2
         9: .line 1229
            goto 17
        10: .line 1232
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 4
        11: .line 1233
            goto 17
        12: .line 1236
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
            istore 2 /* size */
        13: .line 1237
            goto 17
        14: .line 1240
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 8
        15: .line 1241
            goto 17
        16: .line 1243
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // char typeCode
        end local 4 // sun.jvm.hotspot.oops.Field field
        17: .line 1218
      StackMap locals:
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator itr
        18: .line 1246
            iload 2 /* size */
            ireturn
        end local 2 // int size
        end local 1 // java.util.List fields
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   19     1    fields  Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;
            1   19     2      size  I
            2   18     3       itr  Ljava/util/Iterator<Lsun/jvm/hotspot/oops/Field;>;
            4   17     4     field  Lsun/jvm/hotspot/oops/Field;
            5   17     5  typeCode  C
    Signature: (Ljava/util/List<Lsun/jvm/hotspot/oops/Field;>;)I
    MethodParameters:
        Name  Flags
      fields  

  private boolean isCompression();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1250
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.gzLevel:I
            iconst_1
            if_icmplt 1
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.gzLevel:I
            bipush 9
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;

  private static byte[] genByteArrayFromInt(int);
    descriptor: (I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int value
         0: .line 1255
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* intBuffer */
        start local 1 // java.nio.ByteBuffer intBuffer
         1: .line 1256
            aload 1 /* intBuffer */
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1257
            aload 1 /* intBuffer */
            iload 0 /* value */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 1258
            aload 1 /* intBuffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
        end local 1 // java.nio.ByteBuffer intBuffer
        end local 0 // int value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      value  I
            1    4     1  intBuffer  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "HeapHprofBinWriter.java"
NestMembers:
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$1  sun.jvm.hotspot.utilities.HeapHprofBinWriter$2  sun.jvm.hotspot.utilities.HeapHprofBinWriter$3  sun.jvm.hotspot.utilities.HeapHprofBinWriter$4  sun.jvm.hotspot.utilities.HeapHprofBinWriter$5  sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData  sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$1
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$2
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$3
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$4
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$5
  private ClassData = sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData of sun.jvm.hotspot.utilities.HeapHprofBinWriter
  private SegmentedOutputStream = sun.jvm.hotspot.utilities.HeapHprofBinWriter$SegmentedOutputStream of sun.jvm.hotspot.utilities.HeapHprofBinWriter