public class sun.jvm.hotspot.tools.soql.SOQL 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.soql.SOQL
  super_class: sun.jvm.hotspot.tools.Tool
{
  protected sun.jvm.hotspot.utilities.soql.SOQLEngine soqlEngine;
    descriptor: Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
    flags: (0x0004) ACC_PROTECTED

  protected java.io.BufferedReader in;
    descriptor: Ljava/io/BufferedReader;
    flags: (0x0004) ACC_PROTECTED

  protected java.io.PrintStream out;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0004) ACC_PROTECTED

  protected static java.lang.String prompt;
    descriptor: Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static java.lang.String secondPrompt;
    descriptor: Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 57
            ldc "soql> "
            putstatic sun.jvm.hotspot.tools.soql.SOQL.prompt:Ljava/lang/String;
         1: .line 58
            ldc "> "
            putstatic sun.jvm.hotspot.tools.soql.SOQL.secondPrompt:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  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 42
            new sun.jvm.hotspot.tools.soql.SOQL
            dup
            invokespecial sun.jvm.hotspot.tools.soql.SOQL.<init>:()V
            astore 1 /* soql */
        start local 1 // sun.jvm.hotspot.tools.soql.SOQL soql
         1: .line 43
            aload 1 /* soql */
            aload 0 /* args */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.execute:([Ljava/lang/String;)V
         2: .line 44
            return
        end local 1 // sun.jvm.hotspot.tools.soql.SOQL soql
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1  soql  Lsun/jvm/hotspot/tools/soql/SOQL;
    MethodParameters:
      Name  Flags
      args  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
         0: .line 47
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 55
            aload 0 /* this */
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            getstatic java.lang.System.in:Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            putfield sun.jvm.hotspot.tools.soql.SOQL.in:Ljava/io/BufferedReader;
         2: .line 56
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
         3: .line 48
            return
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/jvm/hotspot/tools/soql/SOQL;

  public void <init>(sun.jvm.hotspot.debugger.JVMDebugger);
    descriptor: (Lsun/jvm/hotspot/debugger/JVMDebugger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
         0: .line 51
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 55
            aload 0 /* this */
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            getstatic java.lang.System.in:Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            putfield sun.jvm.hotspot.tools.soql.SOQL.in:Ljava/io/BufferedReader;
         2: .line 56
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
         3: .line 52
            return
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0    4     1     d  Lsun/jvm/hotspot/debugger/JVMDebugger;
    MethodParameters:
      Name  Flags
      d     

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
         0: .line 61
            aload 0 /* this */
            invokestatic sun.jvm.hotspot.utilities.soql.SOQLEngine.getEngine:()Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            putfield sun.jvm.hotspot.tools.soql.SOQL.soqlEngine:Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
         1: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            getstatic sun.jvm.hotspot.tools.soql.SOQL.prompt:Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         2: .line 65
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.in:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 1 /* line */
        start local 1 // java.lang.String line
         3: .line 66
            aload 1 /* line */
            ifnonnull 5
         4: .line 67
            return
         5: .line 69
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* line */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         6: .line 70
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 1
         7: .line 71
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* cmd */
        start local 3 // java.lang.String cmd
         8: .line 72
            aload 3 /* cmd */
            ldc "select"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 73
            aload 0 /* this */
            aload 1 /* line */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.handleSelect:(Ljava/lang/String;)V
        10: .line 74
            goto 1
      StackMap locals: java.util.StringTokenizer java.lang.String
      StackMap stack:
        11: aload 3 /* cmd */
            ldc "classes"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 75
            aload 0 /* this */
            aload 1 /* line */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.handleClasses:(Ljava/lang/String;)V
        13: .line 76
            goto 1
      StackMap locals:
      StackMap stack:
        14: aload 3 /* cmd */
            ldc "class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 77
            aload 0 /* this */
            aload 1 /* line */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.handleClass:(Ljava/lang/String;)V
        16: .line 78
            goto 1
      StackMap locals:
      StackMap stack:
        17: aload 3 /* cmd */
            ldc "object"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 79
            aload 0 /* this */
            aload 1 /* line */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.handleObject:(Ljava/lang/String;)V
        19: .line 80
            goto 1
      StackMap locals:
      StackMap stack:
        20: aload 3 /* cmd */
            ldc "quit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 81
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "Bye!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 82
            return
        23: .line 83
      StackMap locals:
      StackMap stack:
            aload 3 /* cmd */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
        24: .line 86
            aload 0 /* this */
            aload 1 /* line */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.handleUnknown:(Ljava/lang/String;)V
        end local 3 // java.lang.String cmd
        end local 2 // java.util.StringTokenizer st
        end local 1 // java.lang.String line
        25: .line 89
            goto 1
      StackMap locals: sun.jvm.hotspot.tools.soql.SOQL
      StackMap stack: java.io.IOException
        26: astore 1 /* e */
        start local 1 // java.io.IOException e
        27: .line 90
            aload 1 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
        28: .line 91
            return
        end local 1 // java.io.IOException e
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lsun/jvm/hotspot/tools/soql/SOQL;
            3   25     1  line  Ljava/lang/String;
            6   25     2    st  Ljava/util/StringTokenizer;
            8   25     3   cmd  Ljava/lang/String;
           27   29     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4      26  Class java.io.IOException
           5    22      26  Class java.io.IOException
          23    25      26  Class java.io.IOException

  protected void handleSelect(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // java.lang.String query
         0: .line 97
            new java.lang.StringBuffer
            dup
            aload 1 /* query */
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuffer buf
         1: .line 98
            aconst_null
            astore 3 /* tmp */
        start local 3 // java.lang.String tmp
         2: .line 100
      StackMap locals: java.lang.StringBuffer java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            getstatic sun.jvm.hotspot.tools.soql.SOQL.secondPrompt:Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 102
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.in:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 3 /* tmp */
         4: .line 103
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 104
            goto 12
         7: .line 106
      StackMap locals:
      StackMap stack:
            aload 3 /* tmp */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 3 /* tmp */
            ldc "go"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 107
            goto 12
         9: .line 108
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            bipush 10
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        10: .line 109
            aload 2 /* buf */
            aload 3 /* tmp */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        11: .line 99
            goto 2
        12: .line 111
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 1 /* query */
        13: .line 114
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.soqlEngine:Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            aload 1 /* query */
        14: .line 115
            new sun.jvm.hotspot.tools.soql.SOQL$1
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.soql.SOQL$1.<init>:(Lsun/jvm/hotspot/tools/soql/SOQL;)V
        15: .line 114
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.executeQuery:(Ljava/lang/String;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;)V
        16: .line 125
            goto 19
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.utilities.soql.SOQLException
        17: astore 4 /* se */
        start local 4 // sun.jvm.hotspot.utilities.soql.SOQLException se
        18: .line 126
            aload 4 /* se */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLException.printStackTrace:()V
        end local 4 // sun.jvm.hotspot.utilities.soql.SOQLException se
        19: .line 128
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String tmp
        end local 2 // java.lang.StringBuffer buf
        end local 1 // java.lang.String query
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0   20     1  query  Ljava/lang/String;
            1   20     2    buf  Ljava/lang/StringBuffer;
            2   20     3    tmp  Ljava/lang/String;
           18   19     4     se  Lsun/jvm/hotspot/utilities/soql/SOQLException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
          13    16      17  Class sun.jvm.hotspot.utilities.soql.SOQLException
    MethodParameters:
       Name  Flags
      query  

  protected void handleClasses(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // java.lang.String line
         0: .line 132
            invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.getAllInstanceKlasses:()[Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 2 /* klasses */
        start local 2 // sun.jvm.hotspot.oops.InstanceKlass[] klasses
         1: .line 133
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 134
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass[] int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            aload 2 /* klasses */
            iload 3 /* i */
            aaload
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         4: .line 135
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc " @"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         5: .line 136
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            aload 2 /* klasses */
            iload 3 /* i */
            aaload
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
         6: .line 133
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 2 /* klasses */
            arraylength
            if_icmplt 3
        end local 3 // int i
         8: .line 138
            return
        end local 2 // sun.jvm.hotspot.oops.InstanceKlass[] klasses
        end local 1 // java.lang.String line
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0    9     1     line  Ljava/lang/String;
            1    9     2  klasses  [Lsun/jvm/hotspot/oops/InstanceKlass;
            2    8     3        i  I
    MethodParameters:
      Name  Flags
      line  

  protected void handleClass(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // java.lang.String line
         0: .line 141
            new java.util.StringTokenizer
            dup
            aload 1 /* line */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         1: .line 142
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            pop
         2: .line 143
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 33
         3: .line 144
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         4: .line 145
            aload 3 /* className */
            invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.findInstanceKlass:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 4 /* klass */
        start local 4 // sun.jvm.hotspot.oops.InstanceKlass klass
         5: .line 146
            aload 4 /* klass */
            ifnonnull 8
         6: .line 147
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 148
            goto 34
         8: .line 152
      StackMap locals: java.util.StringTokenizer java.lang.String sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
            aload 4 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSuper:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 5 /* base */
        start local 5 // sun.jvm.hotspot.oops.InstanceKlass base
         9: .line 153
            aload 5 /* base */
            ifnull 13
        10: .line 154
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "super"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 155
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "\t"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        12: .line 156
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            aload 5 /* base */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 160
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
            aload 4 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getFields:()Lsun/jvm/hotspot/utilities/U2Array;
            astore 6 /* fields */
        start local 6 // sun.jvm.hotspot.utilities.U2Array fields
        14: .line 161
            aload 6 /* fields */
            invokevirtual sun.jvm.hotspot.utilities.U2Array.length:()I
            istore 7 /* numFields */
        start local 7 // int numFields
        15: .line 162
            aload 4 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getConstants:()Lsun/jvm/hotspot/oops/ConstantPool;
            pop
        16: .line 163
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "fields"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 164
            iload 7 /* numFields */
            ifeq 31
        18: .line 165
            iconst_0
            istore 8 /* f */
        start local 8 // int f
        19: goto 29
        20: .line 166
      StackMap locals: sun.jvm.hotspot.utilities.U2Array int int
      StackMap stack:
            aload 4 /* klass */
            iload 8 /* f */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getFieldName:(I)Lsun/jvm/hotspot/oops/Symbol;
            astore 9 /* f_name */
        start local 9 // sun.jvm.hotspot.oops.Symbol f_name
        21: .line 167
            aload 4 /* klass */
            iload 8 /* f */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getFieldSignature:(I)Lsun/jvm/hotspot/oops/Symbol;
            astore 10 /* f_sig */
        start local 10 // sun.jvm.hotspot.oops.Symbol f_sig
        22: .line 168
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 11 /* sigBuf */
        start local 11 // java.lang.StringBuffer sigBuf
        23: .line 169
            new sun.jvm.hotspot.runtime.SignatureConverter
            dup
            aload 10 /* f_sig */
            aload 11 /* sigBuf */
            invokespecial sun.jvm.hotspot.runtime.SignatureConverter.<init>:(Lsun/jvm/hotspot/oops/Symbol;Ljava/lang/StringBuffer;)V
            invokevirtual sun.jvm.hotspot.runtime.SignatureConverter.dispatchField:()V
        24: .line 170
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        25: .line 171
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            aload 11 /* sigBuf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        26: .line 172
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            bipush 32
            invokevirtual java.io.PrintStream.print:(C)V
        27: .line 173
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            aload 9 /* f_name */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 11 // java.lang.StringBuffer sigBuf
        end local 10 // sun.jvm.hotspot.oops.Symbol f_sig
        end local 9 // sun.jvm.hotspot.oops.Symbol f_name
        28: .line 165
            iinc 8 /* f */ 1
      StackMap locals:
      StackMap stack:
        29: iload 8 /* f */
            iload 7 /* numFields */
            if_icmplt 20
        end local 8 // int f
        30: .line 175
            goto 34
        31: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "\tno fields in this class"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // int numFields
        end local 6 // sun.jvm.hotspot.utilities.U2Array fields
        end local 5 // sun.jvm.hotspot.oops.InstanceKlass base
        end local 4 // sun.jvm.hotspot.oops.InstanceKlass klass
        end local 3 // java.lang.String className
        32: .line 179
            goto 34
        33: .line 180
      StackMap locals: sun.jvm.hotspot.tools.soql.SOQL java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "usage: class <name of the class>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 182
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.StringTokenizer st
        end local 1 // java.lang.String line
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0       this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0   35     1       line  Ljava/lang/String;
            1   35     2         st  Ljava/util/StringTokenizer;
            4   32     3  className  Ljava/lang/String;
            5   32     4      klass  Lsun/jvm/hotspot/oops/InstanceKlass;
            9   32     5       base  Lsun/jvm/hotspot/oops/InstanceKlass;
           14   32     6     fields  Lsun/jvm/hotspot/utilities/U2Array;
           15   32     7  numFields  I
           19   30     8          f  I
           21   28     9     f_name  Lsun/jvm/hotspot/oops/Symbol;
           22   28    10      f_sig  Lsun/jvm/hotspot/oops/Symbol;
           23   28    11     sigBuf  Ljava/lang/StringBuffer;
    MethodParameters:
      Name  Flags
      line  

  protected sun.jvm.hotspot.oops.Oop getOopAtAddress(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 185
            aload 1 /* addr */
            lconst_0
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetToAsOopHandle:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 2 /* oopHandle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
         1: .line 186
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()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;
            areturn
        end local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0    2     1       addr  Lsun/jvm/hotspot/debugger/Address;
            1    2     2  oopHandle  Lsun/jvm/hotspot/debugger/OopHandle;
    MethodParameters:
      Name  Flags
      addr  

  protected void handleObject(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // java.lang.String line
         0: .line 190
            new java.util.StringTokenizer
            dup
            aload 1 /* line */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         1: .line 191
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            pop
         2: .line 192
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 21
         3: .line 193
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* addrStr */
        start local 3 // java.lang.String addrStr
         4: .line 194
            aconst_null
            astore 4 /* addr */
        start local 4 // sun.jvm.hotspot.debugger.Address addr
         5: .line 195
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getDebugger:()Lsun/jvm/hotspot/debugger/JVMDebugger;
            astore 5 /* dbg */
        start local 5 // sun.jvm.hotspot.debugger.Debugger dbg
         6: .line 197
            aload 5 /* dbg */
            aload 3 /* addrStr */
            invokeinterface sun.jvm.hotspot.debugger.Debugger.parseAddress:(Ljava/lang/String;)Lsun/jvm/hotspot/debugger/Address;
            astore 4 /* addr */
         7: .line 198
            goto 11
      StackMap locals: sun.jvm.hotspot.tools.soql.SOQL java.lang.String java.util.StringTokenizer java.lang.String sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Debugger
      StackMap stack: java.lang.Exception
         8: astore 6 /* e */
        start local 6 // java.lang.Exception e
         9: .line 199
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "invalid address : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 200
            return
        end local 6 // java.lang.Exception e
        11: .line 203
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* oop */
        start local 6 // sun.jvm.hotspot.oops.Oop oop
        12: .line 205
            aload 0 /* this */
            aload 4 /* addr */
            invokevirtual sun.jvm.hotspot.tools.soql.SOQL.getOopAtAddress:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Oop;
            astore 6 /* oop */
        13: .line 206
            goto 16
      StackMap locals: sun.jvm.hotspot.tools.soql.SOQL java.lang.String java.util.StringTokenizer java.lang.String sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Debugger sun.jvm.hotspot.oops.Oop
      StackMap stack: java.lang.Exception
        14: astore 7 /* e */
        start local 7 // java.lang.Exception e
        15: .line 207
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "invalid object : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // java.lang.Exception e
        16: .line 210
      StackMap locals:
      StackMap stack:
            aload 6 /* oop */
            ifnull 19
        17: .line 211
            aload 6 /* oop */
            new sun.jvm.hotspot.oops.OopPrinter
            dup
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            invokespecial sun.jvm.hotspot.oops.OopPrinter.<init>:(Ljava/io/PrintStream;)V
            iconst_1
            invokevirtual sun.jvm.hotspot.oops.Oop.iterate:(Lsun/jvm/hotspot/oops/OopVisitor;Z)V
        18: .line 212
            goto 22
        19: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "null object!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // sun.jvm.hotspot.oops.Oop oop
        end local 5 // sun.jvm.hotspot.debugger.Debugger dbg
        end local 4 // sun.jvm.hotspot.debugger.Address addr
        end local 3 // java.lang.String addrStr
        20: .line 215
            goto 22
        21: .line 216
      StackMap locals: sun.jvm.hotspot.tools.soql.SOQL java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "usage: object <address>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 218
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.StringTokenizer st
        end local 1 // java.lang.String line
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0   23     1     line  Ljava/lang/String;
            1   23     2       st  Ljava/util/StringTokenizer;
            4   20     3  addrStr  Ljava/lang/String;
            5   20     4     addr  Lsun/jvm/hotspot/debugger/Address;
            6   20     5      dbg  Lsun/jvm/hotspot/debugger/Debugger;
            9   11     6        e  Ljava/lang/Exception;
           12   20     6      oop  Lsun/jvm/hotspot/oops/Oop;
           15   16     7        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Exception
          12    13      14  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      line  

  protected void handleUnknown(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.soql.SOQL this
        start local 1 // java.lang.String line
         0: .line 221
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.soql.SOQL.out:Ljava/io/PrintStream;
            ldc "Unknown command!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 222
            return
        end local 1 // java.lang.String line
        end local 0 // sun.jvm.hotspot.tools.soql.SOQL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/soql/SOQL;
            0    2     1  line  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      line  
}
SourceFile: "SOQL.java"
NestMembers:
  sun.jvm.hotspot.tools.soql.SOQL$1
InnerClasses:
  sun.jvm.hotspot.tools.soql.SOQL$1