public class sun.jvm.hotspot.oops.OopUtilities
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.oops.OopUtilities
  super_class: java.lang.Object
{
  private static sun.jvm.hotspot.oops.ByteField coderField;
    descriptor: Lsun/jvm/hotspot/oops/ByteField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField valueField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupParentField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupNameField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadGroupNThreadsField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupThreadsField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadGroupNGroupsField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupGroupsField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadNameField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.LongField threadEETopField;
    descriptor: Lsun/jvm/hotspot/oops/LongField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.LongField threadTIDField;
    descriptor: Lsun/jvm/hotspot/oops/LongField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadStatusField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadParkBlockerField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadPriorityField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.BooleanField threadDaemonField;
    descriptor: Lsun/jvm/hotspot/oops/BooleanField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static int THREAD_STATUS_NEW;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_RUNNABLE;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_SLEEPING;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_IN_OBJECT_WAIT;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_IN_OBJECT_WAIT_TIMED;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_PARKED;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_PARKED_TIMED;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_BLOCKED_ON_MONITOR_ENTER;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int THREAD_STATUS_TERMINATED;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField absOwnSyncOwnerThreadField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 85
            new sun.jvm.hotspot.oops.OopUtilities$1
            dup
            invokespecial sun.jvm.hotspot.oops.OopUtilities$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Lsun/jvm/hotspot/utilities/Observer;)V
         1: .line 90
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.OopUtilities this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.oops.OopUtilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/oops/OopUtilities;

  private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 95
            return
        end local 0 // sun.jvm.hotspot.types.TypeDataBase db
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    db  Lsun/jvm/hotspot/types/TypeDataBase;
    MethodParameters:
      Name  Flags
      db    

  public static java.lang.String charArrayToString(sun.jvm.hotspot.oops.TypeArray);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.oops.TypeArray charArray
         0: .line 98
            aload 0 /* charArray */
            ifnonnull 2
         1: .line 99
            aconst_null
            areturn
         2: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* charArray */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
            l2i
            istore 1 /* length */
        start local 1 // int length
         3: .line 102
            new java.lang.StringBuffer
            dup
            iload 1 /* length */
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuffer buf
         4: .line 103
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 104
      StackMap locals: int java.lang.StringBuffer int
      StackMap stack:
            aload 2 /* buf */
            aload 0 /* charArray */
            iload 3 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         7: .line 103
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 1 /* length */
            if_icmplt 6
        end local 3 // int i
         9: .line 106
            aload 2 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer buf
        end local 1 // int length
        end local 0 // sun.jvm.hotspot.oops.TypeArray charArray
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  charArray  Lsun/jvm/hotspot/oops/TypeArray;
            3   10     1     length  I
            4   10     2        buf  Ljava/lang/StringBuffer;
            5    9     3          i  I
    MethodParameters:
           Name  Flags
      charArray  

  public static java.lang.String byteArrayToString(sun.jvm.hotspot.oops.TypeArray, byte);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.oops.TypeArray byteArray
        start local 1 // byte coder
         0: .line 110
            aload 0 /* byteArray */
            ifnonnull 2
         1: .line 111
            aconst_null
            areturn
         2: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* byteArray */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
            l2i
            iload 1 /* coder */
            ishr
            istore 2 /* length */
        start local 2 // int length
         3: .line 114
            new java.lang.StringBuffer
            dup
            iload 2 /* length */
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuffer buf
         4: .line 115
            iload 1 /* coder */
            ifne 11
         5: .line 117
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 118
      StackMap locals: int java.lang.StringBuffer int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* byteArray */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getByteAt:(J)B
            sipush 255
            iand
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 117
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 2 /* length */
            if_icmplt 7
        end local 4 // int i
        10: .line 120
            goto 16
        11: .line 122
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 15
        13: .line 123
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* byteArray */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        14: .line 122
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 2 /* length */
            if_icmplt 13
        end local 4 // int i
        16: .line 126
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuffer buf
        end local 2 // int length
        end local 1 // byte coder
        end local 0 // sun.jvm.hotspot.oops.TypeArray byteArray
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0  byteArray  Lsun/jvm/hotspot/oops/TypeArray;
            0   17     1      coder  B
            3   17     2     length  I
            4   17     3        buf  Ljava/lang/StringBuffer;
            6   10     4          i  I
           12   16     4          i  I
    MethodParameters:
           Name  Flags
      byteArray  
      coder      

  public static java.lang.String escapeString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String s
         0: .line 130
            aconst_null
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 131
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         2: goto 18
         3: .line 132
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* value */
        start local 3 // char value
         4: .line 133
            iload 3 /* value */
            bipush 32
            if_icmplt 5
            iload 3 /* value */
            bipush 127
            if_icmplt 6
      StackMap locals: int
      StackMap stack:
         5: iload 3 /* value */
            bipush 39
            if_icmpeq 6
            iload 3 /* value */
            bipush 92
            if_icmpne 9
         6: .line 134
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ifnull 17
         7: .line 135
            aload 1 /* sb */
            iload 3 /* value */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 137
            goto 17
         9: .line 138
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ifnonnull 12
        10: .line 139
            new java.lang.StringBuilder
            dup
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        11: .line 140
            aload 1 /* sb */
            aload 0 /* s */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        12: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "\\u"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 143
            iload 3 /* value */
            bipush 16
            if_icmpge 14
            aload 1 /* sb */
            ldc "000"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 16
        14: .line 144
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            sipush 256
            if_icmpge 15
            aload 1 /* sb */
            ldc "00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 16
        15: .line 145
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            sipush 4096
            if_icmpge 16
            aload 1 /* sb */
            ldc "0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 146
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 3 /* value */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // char value
        17: .line 131
      StackMap locals:
      StackMap stack:
            iinc 2 /* index */ 1
      StackMap locals:
      StackMap stack:
        18: iload 2 /* index */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int index
        19: .line 149
            aload 1 /* sb */
            ifnull 21
        20: .line 150
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        21: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0      s  Ljava/lang/String;
            1   22     1     sb  Ljava/lang/StringBuilder;
            2   19     2  index  I
            4   17     3  value  C
    MethodParameters:
      Name  Flags
      s     

  public static java.lang.String stringOopToString(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop stringOop
         0: .line 156
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         1: .line 157
            aload 1 /* k */
            ldc "coder"
            ldc "B"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.ByteField
            putstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
         2: .line 158
            aload 1 /* k */
            ldc "value"
            ldc "[B"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
         3: .line 159
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 10
         4: .line 160
            getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ldc "Field 'coder' of java.lang.String not found"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
         7: .line 161
            getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: ldc "Field 'value' of java.lang.String not found"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        10: .line 163
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.TypeArray
            getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
            invokestatic sun.jvm.hotspot.oops.OopUtilities.byteArrayToString:(Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
            areturn
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.oops.Oop stringOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  stringOop  Lsun/jvm/hotspot/oops/Oop;
            1   11     1          k  Lsun/jvm/hotspot/oops/InstanceKlass;
    MethodParameters:
           Name  Flags
      stringOop  

  public static java.lang.String stringOopToEscapedString(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop stringOop
         0: .line 167
            aload 0 /* stringOop */
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.escapeString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop stringOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  stringOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      stringOop  

  private static void initThreadGroupFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 171
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 19
         1: .line 172
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 173
            invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadGroupKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 174
            aload 1 /* k */
            ldc "parent"
            ldc "Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
         4: .line 175
            aload 1 /* k */
            ldc "name"
            ldc "Ljava/lang/String;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
         5: .line 176
            aload 1 /* k */
            ldc "nthreads"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
         6: .line 177
            aload 1 /* k */
            ldc "threads"
            ldc "[Ljava/lang/Thread;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
         7: .line 178
            aload 1 /* k */
            ldc "ngroups"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
         8: .line 179
            aload 1 /* k */
            ldc "groups"
            ldc "[Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
         9: .line 180
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 19
        10: .line 181
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        11: .line 182
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        12: .line 183
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 16
        13: .line 184
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        14: .line 185
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 16
        15: .line 186
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
            iconst_1
            goto 17
      StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: ldc "must find all java.lang.ThreadGroup fields"
        18: .line 181
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
        19: .line 189
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2   19     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3   19     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;

  public static sun.jvm.hotspot.oops.Oop threadGroupOopGetParent(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 192
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 193
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static java.lang.String threadGroupOopGetName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 197
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 198
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetThreads(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 202
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 203
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            istore 1 /* nthreads */
        start local 1 // int nthreads
         2: .line 204
            iload 1 /* nthreads */
            anewarray sun.jvm.hotspot.oops.Oop
            astore 2 /* result */
        start local 2 // sun.jvm.hotspot.oops.Oop[] result
         3: .line 205
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.ObjArray
            astore 3 /* threads */
        start local 3 // sun.jvm.hotspot.oops.ObjArray threads
         4: .line 206
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 207
      StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            aload 3 /* threads */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
            aastore
         7: .line 206
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* nthreads */
            if_icmplt 6
        end local 4 // int i
         9: .line 209
            aload 2 /* result */
            areturn
        end local 3 // sun.jvm.hotspot.oops.ObjArray threads
        end local 2 // sun.jvm.hotspot.oops.Oop[] result
        end local 1 // int nthreads
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
            2   10     1        nthreads  I
            3   10     2          result  [Lsun/jvm/hotspot/oops/Oop;
            4   10     3         threads  Lsun/jvm/hotspot/oops/ObjArray;
            5    9     4               i  I
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetGroups(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 213
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 214
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            istore 1 /* ngroups */
        start local 1 // int ngroups
         2: .line 215
            iload 1 /* ngroups */
            anewarray sun.jvm.hotspot.oops.Oop
            astore 2 /* result */
        start local 2 // sun.jvm.hotspot.oops.Oop[] result
         3: .line 216
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.ObjArray
            astore 3 /* groups */
        start local 3 // sun.jvm.hotspot.oops.ObjArray groups
         4: .line 217
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 218
      StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            aload 3 /* groups */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
            aastore
         7: .line 217
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* ngroups */
            if_icmplt 6
        end local 4 // int i
         9: .line 220
            aload 2 /* result */
            areturn
        end local 3 // sun.jvm.hotspot.oops.ObjArray groups
        end local 2 // sun.jvm.hotspot.oops.Oop[] result
        end local 1 // int ngroups
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
            2   10     1         ngroups  I
            3   10     2          result  [Lsun/jvm/hotspot/oops/Oop;
            4   10     3          groups  Lsun/jvm/hotspot/oops/ObjArray;
            5    9     4               i  I
    MethodParameters:
                Name  Flags
      threadGroupOop  

  private static void initThreadFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=0
         0: .line 224
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 30
         1: .line 225
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 226
            invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 227
            aload 1 /* k */
            ldc "name"
            ldc "Ljava/lang/String;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
         4: .line 228
            aload 1 /* k */
            ldc "group"
            ldc "Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
         5: .line 229
            aload 1 /* k */
            ldc "eetop"
            ldc "J"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.LongField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
         6: .line 230
            aload 1 /* k */
            ldc "tid"
            ldc "J"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.LongField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
         7: .line 231
            aload 1 /* k */
            ldc "threadStatus"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
         8: .line 232
            aload 1 /* k */
            ldc "parkBlocker"
         9: .line 233
            ldc "Ljava/lang/Object;"
        10: .line 232
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
        11: .line 234
            aload 1 /* k */
            ldc "priority"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadPriorityField:Lsun/jvm/hotspot/oops/IntField;
        12: .line 235
            aload 1 /* k */
            ldc "daemon"
            ldc "Z"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.BooleanField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadDaemonField:Lsun/jvm/hotspot/oops/BooleanField;
        13: .line 236
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getTypeDataBase:()Lsun/jvm/hotspot/types/TypeDataBase;
            astore 2 /* db */
        start local 2 // sun.jvm.hotspot.types.TypeDataBase db
        14: .line 237
            aload 2 /* db */
            ldc "JavaThreadStatus::NEW"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
        15: .line 239
            aload 2 /* db */
            ldc "JavaThreadStatus::RUNNABLE"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_RUNNABLE:I
        16: .line 240
            aload 2 /* db */
            ldc "JavaThreadStatus::SLEEPING"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_SLEEPING:I
        17: .line 241
            aload 2 /* db */
            ldc "JavaThreadStatus::IN_OBJECT_WAIT"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_IN_OBJECT_WAIT:I
        18: .line 242
            aload 2 /* db */
            ldc "JavaThreadStatus::IN_OBJECT_WAIT_TIMED"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_IN_OBJECT_WAIT_TIMED:I
        19: .line 243
            aload 2 /* db */
            ldc "JavaThreadStatus::PARKED"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_PARKED:I
        20: .line 244
            aload 2 /* db */
            ldc "JavaThreadStatus::PARKED_TIMED"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_PARKED_TIMED:I
        21: .line 245
            aload 2 /* db */
            ldc "JavaThreadStatus::BLOCKED_ON_MONITOR_ENTER"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_BLOCKED_ON_MONITOR_ENTER:I
        22: .line 246
            aload 2 /* db */
            ldc "JavaThreadStatus::TERMINATED"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_TERMINATED:I
        23: .line 248
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 30
        24: .line 251
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 27
        25: .line 252
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 27
        26: .line 253
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
            ifnull 27
            iconst_1
            goto 28
      StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.types.TypeDataBase
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: ldc "must find all java.lang.Thread fields"
        29: .line 251
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        end local 2 // sun.jvm.hotspot.types.TypeDataBase db
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
        30: .line 256
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2   30     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3   30     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;
           14   30     2       db  Lsun/jvm/hotspot/types/TypeDataBase;

  public static sun.jvm.hotspot.oops.Oop threadOopGetThreadGroup(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 259
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 260
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static java.lang.String threadOopGetName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 264
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 265
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static sun.jvm.hotspot.runtime.JavaThread threadOopGetJavaThread(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 270
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 271
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
            invokevirtual sun.jvm.hotspot.oops.LongField.getOffset:()J
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getAddressAt:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 1 /* addr */
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         2: .line 272
            aload 1 /* addr */
            ifnonnull 4
         3: .line 273
            aconst_null
            areturn
         4: .line 275
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            aload 1 /* addr */
            invokevirtual sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/runtime/JavaThread;
            areturn
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
            2    5     1       addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
           Name  Flags
      threadOop  

  public static long threadOopGetTID(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 279
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 280
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
            ifnull 3
         2: .line 281
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
            lreturn
         3: .line 283
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static int threadOopGetThreadStatus(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 289
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 291
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 3
         2: .line 292
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            ireturn
         3: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* threadOop */
            invokestatic sun.jvm.hotspot.oops.OopUtilities.threadOopGetJavaThread:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 1 /* thr */
        start local 1 // sun.jvm.hotspot.runtime.JavaThread thr
         4: .line 297
            aload 1 /* thr */
            ifnonnull 6
         5: .line 299
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
            ireturn
         6: .line 301
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // sun.jvm.hotspot.runtime.JavaThread thr
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
            4    7     1        thr  Lsun/jvm/hotspot/runtime/JavaThread;
    MethodParameters:
           Name  Flags
      threadOop  

  public static sun.jvm.hotspot.oops.Oop threadOopGetParkBlocker(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 308
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 309
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 3
         2: .line 310
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
         3: .line 312
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  private static void initAbsOwnSyncFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 317
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 7
         1: .line 318
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 319
            aload 0 /* sysDict */
            invokevirtual sun.jvm.hotspot.memory.SystemDictionary.getAbstractOwnableSynchronizerKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 321
            aload 1 /* k */
            ldc "exclusiveOwnerThread"
         4: .line 322
            ldc "Ljava/lang/Thread;"
         5: .line 321
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
         6: .line 320
            putstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         7: .line 324
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    7     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3    7     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;

  public static sun.jvm.hotspot.oops.Oop abstractOwnableSynchronizerGetOwnerThread(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop oop
         0: .line 328
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initAbsOwnSyncFields:()V
         1: .line 329
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 3
         2: .line 330
            aconst_null
            areturn
         3: .line 332
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* oop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop oop
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   oop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
      Name  Flags
      oop   

  public static int threadOopGetPriority(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 337
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 338
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadPriorityField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 3
         2: .line 339
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadPriorityField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            ireturn
         3: .line 341
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static boolean threadOopGetDaemon(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 346
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 347
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadDaemonField:Lsun/jvm/hotspot/oops/BooleanField;
            ifnull 3
         2: .line 348
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadDaemonField:Lsun/jvm/hotspot/oops/BooleanField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.BooleanField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Z
            ireturn
         3: .line 350
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static java.lang.String threadOopGetThreadStatusName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 355
            aload 0 /* threadOop */
            invokestatic sun.jvm.hotspot.oops.OopUtilities.threadOopGetThreadStatus:(Lsun/jvm/hotspot/oops/Oop;)I
            istore 1 /* status */
        start local 1 // int status
         1: .line 356
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
            if_icmpne 3
         2: .line 357
            ldc "NEW"
            areturn
         3: .line 358
      StackMap locals: int
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_RUNNABLE:I
            if_icmpne 5
         4: .line 359
            ldc "RUNNABLE"
            areturn
         5: .line 360
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_SLEEPING:I
            if_icmpne 7
         6: .line 361
            ldc "TIMED_WAITING (sleeping)"
            areturn
         7: .line 362
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_IN_OBJECT_WAIT:I
            if_icmpne 9
         8: .line 363
            ldc "WAITING (on object monitor)"
            areturn
         9: .line 364
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_IN_OBJECT_WAIT_TIMED:I
            if_icmpne 11
        10: .line 365
            ldc "TIMED_WAITING (on object monitor)"
            areturn
        11: .line 366
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_PARKED:I
            if_icmpne 13
        12: .line 367
            ldc "WAITING (parking)"
            areturn
        13: .line 368
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_PARKED_TIMED:I
            if_icmpne 15
        14: .line 369
            ldc "TIMED_WAITING (parking)"
            areturn
        15: .line 370
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_BLOCKED_ON_MONITOR_ENTER:I
            if_icmpne 17
        16: .line 371
            ldc "BLOCKED (on object monitor)"
            areturn
        17: .line 372
      StackMap locals:
      StackMap stack:
            iload 1 /* status */
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_TERMINATED:I
            if_icmpne 19
        18: .line 373
            ldc "TERMINATED"
            areturn
        19: .line 375
      StackMap locals:
      StackMap stack:
            ldc "UNKNOWN"
            areturn
        end local 1 // int status
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
            1   20     1     status  I
    MethodParameters:
           Name  Flags
      threadOop  
}
SourceFile: "OopUtilities.java"
NestMembers:
  sun.jvm.hotspot.oops.OopUtilities$1
InnerClasses:
  sun.jvm.hotspot.oops.OopUtilities$1