public class sun.jvm.hotspot.tools.jcore.ClassDump extends sun.jvm.hotspot.tools.Tool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.tools.jcore.ClassDump
  super_class: sun.jvm.hotspot.tools.Tool
{
  private sun.jvm.hotspot.tools.jcore.ClassFilter classFilter;
    descriptor: Lsun/jvm/hotspot/tools/jcore/ClassFilter;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String outputDirectory;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.jar.JarOutputStream jarStream;
    descriptor: Ljava/util/jar/JarOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String pkgList;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
         0: .line 46
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 47
            return
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/jcore/ClassDump;

  public void <init>(sun.jvm.hotspot.debugger.JVMDebugger, java.lang.String);
    descriptor: (Lsun/jvm/hotspot/debugger/JVMDebugger;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        start local 2 // java.lang.String pkgList
         0: .line 50
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 51
            aload 0 /* this */
            aload 2 /* pkgList */
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.pkgList:Ljava/lang/String;
         2: .line 52
            return
        end local 2 // java.lang.String pkgList
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            0    3     1        d  Lsun/jvm/hotspot/debugger/JVMDebugger;
            0    3     2  pkgList  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      d        
      pkgList  

  public void setClassFilter(sun.jvm.hotspot.tools.jcore.ClassFilter);
    descriptor: (Lsun/jvm/hotspot/tools/jcore/ClassFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
        start local 1 // sun.jvm.hotspot.tools.jcore.ClassFilter cf
         0: .line 55
            aload 0 /* this */
            aload 1 /* cf */
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
         1: .line 56
            return
        end local 1 // sun.jvm.hotspot.tools.jcore.ClassFilter cf
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            0    2     1    cf  Lsun/jvm/hotspot/tools/jcore/ClassFilter;
    MethodParameters:
      Name  Flags
      cf    

  public void setOutputDirectory(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
        start local 1 // java.lang.String od
         0: .line 59
            aload 0 /* this */
            aload 1 /* od */
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.outputDirectory:Ljava/lang/String;
         1: .line 60
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            ifnull 6
         2: .line 62
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            invokevirtual java.util.jar.JarOutputStream.close:()V
         3: .line 63
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
         5: .line 64
            aload 2 /* ioe */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 2 // java.io.IOException ioe
         6: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
         7: .line 68
            return
        end local 1 // java.lang.String od
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            0    8     1    od  Ljava/lang/String;
            5    6     2   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    MethodParameters:
      Name  Flags
      od    

  public void setJarOutput(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
        start local 1 // java.lang.String jarFileName
         0: .line 71
            aload 0 /* this */
            new java.util.jar.JarOutputStream
            dup
            new java.io.FileOutputStream
            dup
            aload 1 /* jarFileName */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
         1: .line 72
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.outputDirectory:Ljava/lang/String;
         2: .line 73
            return
        end local 1 // java.lang.String jarFileName
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            0    3     1  jarFileName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      jarFileName  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
         0: .line 78
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
            ifnonnull 13
         1: .line 82
            ldc "sun.jvm.hotspot.tools.jcore.filter"
         2: .line 83
            ldc "sun.jvm.hotspot.tools.jcore.PackageNameFilter"
         3: .line 82
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* filterClassName */
        start local 1 // java.lang.String filterClassName
         4: .line 85
            aload 1 /* filterClassName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* filterClass */
        start local 2 // java.lang.Class filterClass
         5: .line 86
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.pkgList:Ljava/lang/String;
            ifnonnull 8
         6: .line 87
            aload 0 /* this */
            aload 2 /* filterClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.tools.jcore.ClassFilter
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
         7: .line 88
            goto 13
         8: .line 89
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* filterClass */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 3 /* con */
        start local 3 // java.lang.reflect.Constructor con
         9: .line 90
            aload 0 /* this */
            aload 3 /* con */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.pkgList:Ljava/lang/String;
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.tools.jcore.ClassFilter
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
        end local 3 // java.lang.reflect.Constructor con
        end local 2 // java.lang.Class filterClass
        10: .line 92
            goto 13
      StackMap locals: sun.jvm.hotspot.tools.jcore.ClassDump java.lang.String
      StackMap stack: java.lang.Exception
        11: pop
        12: .line 93
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Warning: Can not create class filter!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // java.lang.String filterClassName
        13: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.outputDirectory:Ljava/lang/String;
            ifnonnull 16
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            ifnonnull 16
        14: .line 100
            ldc "sun.jvm.hotspot.tools.jcore.outputDir"
            ldc "."
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* dirName */
        start local 1 // java.lang.String dirName
        15: .line 101
            aload 0 /* this */
            aload 1 /* dirName */
            invokevirtual sun.jvm.hotspot.tools.jcore.ClassDump.setOutputDirectory:(Ljava/lang/String;)V
        end local 1 // java.lang.String dirName
        16: .line 105
      StackMap locals:
      StackMap stack:
            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 /* cldg */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        17: .line 106
            aload 1 /* cldg */
            new sun.jvm.hotspot.tools.jcore.ClassDump$1
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.jcore.ClassDump$1.<init>:(Lsun/jvm/hotspot/tools/jcore/ClassDump;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        18: .line 118
            goto 24
        19: .line 119
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.debugger.AddressException
            astore 1 /* e */
        start local 1 // sun.jvm.hotspot.debugger.AddressException e
        20: .line 120
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Error accessing address 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 121
            aload 1 /* e */
            invokevirtual sun.jvm.hotspot.debugger.AddressException.getAddress:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 120
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        23: .line 122
            aload 1 /* e */
            invokevirtual sun.jvm.hotspot.debugger.AddressException.printStackTrace:()V
        end local 1 // sun.jvm.hotspot.debugger.AddressException e
        24: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            ifnull 30
        25: .line 126
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            invokevirtual java.util.jar.JarOutputStream.close:()V
        26: .line 127
            goto 29
      StackMap locals:
      StackMap stack: java.io.IOException
        27: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        28: .line 128
            aload 1 /* ioe */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 1 // java.io.IOException ioe
        29: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
        30: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            4   13     1  filterClassName  Ljava/lang/String;
            5   10     2      filterClass  Ljava/lang/Class;
            9   10     3              con  Ljava/lang/reflect/Constructor;
           15   16     1          dirName  Ljava/lang/String;
           17   18     1             cldg  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
           20   24     1                e  Lsun/jvm/hotspot/debugger/AddressException;
           28   29     1              ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    10      11  Class java.lang.Exception
           0    18      19  Class sun.jvm.hotspot.debugger.AddressException
          25    26      27  Class java.io.IOException

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
         0: .line 135
            ldc "jcore"
            areturn
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/tools/jcore/ClassDump;

  private void dumpKlass(sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=2
        start local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass kls
         0: .line 139
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
            ifnull 2
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.classFilter:Lsun/jvm/hotspot/tools/jcore/ClassFilter;
            aload 1 /* kls */
            invokeinterface sun.jvm.hotspot.tools.jcore.ClassFilter.canInclude:(Lsun/jvm/hotspot/oops/InstanceKlass;)Z
            ifne 2
         1: .line 140
            return
         2: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* kls */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            astore 2 /* klassName */
        start local 2 // java.lang.String klassName
         3: .line 144
            aload 2 /* klassName */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 2 /* klassName */
         4: .line 146
            aconst_null
            astore 3 /* os */
        start local 3 // java.io.OutputStream os
         5: .line 147
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            ifnull 9
         6: .line 148
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            new java.util.jar.JarEntry
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* klassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.util.jar.JarEntry.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.jar.JarOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 149
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            astore 3 /* os */
         8: .line 150
            goto 20
         9: .line 151
      StackMap locals: java.lang.String java.io.OutputStream
      StackMap stack:
            aload 2 /* klassName */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* index */
        start local 4 // int index
        10: .line 152
            aconst_null
            astore 5 /* dir */
        start local 5 // java.io.File dir
        11: .line 153
            iload 4 /* index */
            iconst_m1
            if_icmpeq 15
        12: .line 154
            aload 2 /* klassName */
            iconst_0
            iload 4 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* dirName */
        start local 6 // java.lang.String dirName
        13: .line 155
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.outputDirectory:Ljava/lang/String;
            aload 6 /* dirName */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* dir */
        end local 6 // java.lang.String dirName
        14: .line 156
            goto 16
        15: .line 157
      StackMap locals: int java.io.File
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.outputDirectory:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* dir */
        16: .line 160
      StackMap locals:
      StackMap stack:
            aload 5 /* dir */
            invokevirtual java.io.File.mkdirs:()Z
            pop
        17: .line 161
            new java.io.File
            dup
            aload 5 /* dir */
            new java.lang.StringBuilder
            dup
            aload 2 /* klassName */
            iload 4 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
        18: .line 162
            aload 6 /* f */
            invokevirtual java.io.File.createNewFile:()Z
            pop
        19: .line 163
            new java.io.BufferedOutputStream
            dup
            new java.io.FileOutputStream
            dup
            aload 6 /* f */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* os */
        end local 6 // java.io.File f
        end local 5 // java.io.File dir
        end local 4 // int index
        20: .line 166
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.tools.jcore.ClassWriter
            dup
            aload 1 /* kls */
            aload 3 /* os */
            invokespecial sun.jvm.hotspot.tools.jcore.ClassWriter.<init>:(Lsun/jvm/hotspot/oops/InstanceKlass;Ljava/io/OutputStream;)V
            astore 4 /* cw */
        start local 4 // sun.jvm.hotspot.tools.jcore.ClassWriter cw
        21: .line 167
            aload 4 /* cw */
            invokevirtual sun.jvm.hotspot.tools.jcore.ClassWriter.write:()V
        end local 4 // sun.jvm.hotspot.tools.jcore.ClassWriter cw
        22: .line 168
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 5
        24: .line 169
            aload 3 /* os */
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            if_acmpeq 26
        25: .line 170
            aload 3 /* os */
            invokevirtual java.io.OutputStream.close:()V
        26: .line 172
      StackMap locals: sun.jvm.hotspot.tools.jcore.ClassDump sun.jvm.hotspot.oops.InstanceKlass java.lang.String java.io.OutputStream top java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        27: .line 169
      StackMap locals: sun.jvm.hotspot.tools.jcore.ClassDump sun.jvm.hotspot.oops.InstanceKlass java.lang.String java.io.OutputStream
      StackMap stack:
            aload 3 /* os */
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.jcore.ClassDump.jarStream:Ljava/util/jar/JarOutputStream;
            if_acmpeq 32
        28: .line 170
            aload 3 /* os */
            invokevirtual java.io.OutputStream.close:()V
        end local 3 // java.io.OutputStream os
        29: .line 173
            goto 32
      StackMap locals: sun.jvm.hotspot.tools.jcore.ClassDump sun.jvm.hotspot.oops.InstanceKlass java.lang.String
      StackMap stack: java.io.IOException
        30: astore 3 /* exp */
        start local 3 // java.io.IOException exp
        31: .line 174
            aload 3 /* exp */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 3 // java.io.IOException exp
        32: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String klassName
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass kls
        end local 0 // sun.jvm.hotspot.tools.jcore.ClassDump this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lsun/jvm/hotspot/tools/jcore/ClassDump;
            0   33     1        kls  Lsun/jvm/hotspot/oops/InstanceKlass;
            3   33     2  klassName  Ljava/lang/String;
            5   29     3         os  Ljava/io/OutputStream;
           10   20     4      index  I
           11   20     5        dir  Ljava/io/File;
           13   14     6    dirName  Ljava/lang/String;
           18   20     6          f  Ljava/io/File;
           21   22     4         cw  Lsun/jvm/hotspot/tools/jcore/ClassWriter;
           31   32     3        exp  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          20    23      23  any
           4    29      30  Class java.io.IOException
    MethodParameters:
      Name  Flags
      kls   

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 180
            new sun.jvm.hotspot.tools.jcore.ClassDump
            dup
            invokespecial sun.jvm.hotspot.tools.jcore.ClassDump.<init>:()V
            astore 1 /* cd */
        start local 1 // sun.jvm.hotspot.tools.jcore.ClassDump cd
         1: .line 181
            aload 1 /* cd */
            aload 0 /* args */
            invokevirtual sun.jvm.hotspot.tools.jcore.ClassDump.execute:([Ljava/lang/String;)V
         2: .line 182
            return
        end local 1 // sun.jvm.hotspot.tools.jcore.ClassDump cd
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1    cd  Lsun/jvm/hotspot/tools/jcore/ClassDump;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "ClassDump.java"
NestMembers:
  sun.jvm.hotspot.tools.jcore.ClassDump$1
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  sun.jvm.hotspot.tools.jcore.ClassDump$1