public class sun.jvm.hotspot.utilities.PointerFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.PointerFinder
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.PointerFinder this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.utilities.PointerFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/PointerFinder;

  public static sun.jvm.hotspot.utilities.PointerLocation find(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/utilities/PointerLocation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // sun.jvm.hotspot.debugger.Address a
         0: .line 39
            new sun.jvm.hotspot.utilities.PointerLocation
            dup
            aload 0 /* a */
            invokespecial sun.jvm.hotspot.utilities.PointerLocation.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            astore 1 /* loc */
        start local 1 // sun.jvm.hotspot.utilities.PointerLocation loc
         1: .line 41
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            astore 2 /* heap */
        start local 2 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
         2: .line 42
            aload 2 /* heap */
            instanceof sun.jvm.hotspot.gc.shared.GenCollectedHeap
            ifeq 31
         3: .line 43
            aload 2 /* heap */
            checkcast sun.jvm.hotspot.gc.shared.GenCollectedHeap
            astore 3 /* genheap */
        start local 3 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genheap
         4: .line 44
            aload 3 /* genheap */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 34
         5: .line 45
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 12
         7: .line 46
      StackMap locals: sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.utilities.PointerLocation sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.gc.shared.GenCollectedHeap int
      StackMap stack:
            aload 3 /* genheap */
            iload 4 /* i */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.getGen:(I)Lsun/jvm/hotspot/gc/shared/Generation;
            astore 5 /* g */
        start local 5 // sun.jvm.hotspot.gc.shared.Generation g
         8: .line 47
            aload 5 /* g */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 11
         9: .line 48
            aload 1 /* loc */
            aload 5 /* g */
            putfield sun.jvm.hotspot.utilities.PointerLocation.gen:Lsun/jvm/hotspot/gc/shared/Generation;
        10: .line 49
            goto 13
        end local 5 // sun.jvm.hotspot.gc.shared.Generation g
        11: .line 45
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 3 /* genheap */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.nGens:()I
            if_icmplt 7
        end local 4 // int i
        13: .line 53
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 17
        14: .line 54
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.gen:Lsun/jvm/hotspot/gc/shared/Generation;
            ifnull 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: ldc "Should have found this in a generation"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        17: .line 57
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUseTLAB:()Z
            ifeq 30
        18: .line 59
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            astore 4 /* threads */
        start local 4 // sun.jvm.hotspot.runtime.Threads threads
        19: .line 60
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        20: goto 29
        21: .line 61
      StackMap locals: sun.jvm.hotspot.runtime.Threads int
      StackMap stack:
            aload 4 /* threads */
            iload 5 /* i */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getJavaThreadAt:(I)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 6 /* t */
        start local 6 // sun.jvm.hotspot.runtime.JavaThread t
        22: .line 62
            aload 6 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.tlab:()Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
            astore 7 /* tlab */
        start local 7 // sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer tlab
        23: .line 63
            aload 7 /* tlab */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 28
        24: .line 64
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inTLAB:Z
        25: .line 65
            aload 1 /* loc */
            aload 6 /* t */
            putfield sun.jvm.hotspot.utilities.PointerLocation.tlabThread:Lsun/jvm/hotspot/runtime/JavaThread;
        26: .line 66
            aload 1 /* loc */
            aload 7 /* tlab */
            putfield sun.jvm.hotspot.utilities.PointerLocation.tlab:Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
        27: .line 67
            goto 30
        end local 7 // sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer tlab
        end local 6 // sun.jvm.hotspot.runtime.JavaThread t
        28: .line 60
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 5 /* i */
            aload 4 /* threads */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getNumberOfThreads:()I
            if_icmplt 21
        end local 5 // int i
        end local 4 // sun.jvm.hotspot.runtime.Threads threads
        30: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            areturn
        end local 3 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genheap
        31: .line 75
      StackMap locals:
      StackMap stack:
            aload 2 /* heap */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 34
        32: .line 76
            aload 1 /* loc */
            aload 2 /* heap */
            putfield sun.jvm.hotspot.utilities.PointerLocation.heap:Lsun/jvm/hotspot/gc/shared/CollectedHeap;
        33: .line 77
            aload 1 /* loc */
            areturn
        34: .line 81
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getInterpreter:()Lsun/jvm/hotspot/interpreter/Interpreter;
            astore 3 /* interp */
        start local 3 // sun.jvm.hotspot.interpreter.Interpreter interp
        35: .line 82
            aload 3 /* interp */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 39
        36: .line 83
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inInterpreter:Z
        37: .line 84
            aload 1 /* loc */
            aload 3 /* interp */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.getCodeletContaining:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
            putfield sun.jvm.hotspot.utilities.PointerLocation.interpreterCodelet:Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
        38: .line 85
            aload 1 /* loc */
            areturn
        39: .line 88
      StackMap locals: sun.jvm.hotspot.interpreter.Interpreter
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.isCore:()Z
            ifne 60
        40: .line 89
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getCodeCache:()Lsun/jvm/hotspot/code/CodeCache;
            astore 4 /* c */
        start local 4 // sun.jvm.hotspot.code.CodeCache c
        41: .line 90
            aload 4 /* c */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeCache.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 60
        42: .line 91
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inCodeCache:Z
        43: .line 92
            aload 1 /* loc */
            aload 4 /* c */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeCache.findBlobUnsafe:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/code/CodeBlob;
            putfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
        44: .line 93
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 48
        45: .line 94
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            ifnull 46
            iconst_1
            goto 47
      StackMap locals: sun.jvm.hotspot.code.CodeCache
      StackMap stack:
        46: iconst_0
      StackMap locals:
      StackMap stack: int
        47: ldc "Should have found CodeBlob"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        48: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.codeContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobCode:Z
        49: .line 97
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.dataContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobData:Z
        50: .line 99
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isNMethod:()Z
            ifeq 53
        51: .line 100
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            checkcast sun.jvm.hotspot.code.NMethod
            astore 5 /* nm */
        start local 5 // sun.jvm.hotspot.code.NMethod nm
        52: .line 101
            aload 1 /* loc */
            aload 5 /* nm */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.NMethod.oopsContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobOops:Z
        end local 5 // sun.jvm.hotspot.code.NMethod nm
        53: .line 104
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobCode:Z
            ifne 56
        54: .line 105
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobData:Z
            ifne 56
        55: .line 106
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobOops:Z
            ifeq 57
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation
        56: iconst_0
            goto 58
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation
        57: iconst_1
        58: .line 104
      StackMap locals: sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.utilities.PointerLocation sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.interpreter.Interpreter sun.jvm.hotspot.code.CodeCache
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation int
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobUnknownLocation:Z
        59: .line 107
            aload 1 /* loc */
            areturn
        end local 4 // sun.jvm.hotspot.code.CodeCache c
        60: .line 112
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getJNIHandles:()Lsun/jvm/hotspot/runtime/JNIHandles;
            astore 4 /* handles */
        start local 4 // sun.jvm.hotspot.runtime.JNIHandles handles
        61: .line 118
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.globalHandles:()Lsun/jvm/hotspot/gc/shared/OopStorage;
            astore 5 /* storage */
        start local 5 // sun.jvm.hotspot.gc.shared.OopStorage storage
        62: .line 119
            aload 5 /* storage */
            ifnull 65
            aload 5 /* storage */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.OopStorage.findOop:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 65
        63: .line 120
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inStrongGlobalJNIHandles:Z
        64: .line 121
            aload 1 /* loc */
            areturn
        65: .line 124
      StackMap locals: sun.jvm.hotspot.runtime.JNIHandles sun.jvm.hotspot.gc.shared.OopStorage
      StackMap stack:
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.weakGlobalHandles:()Lsun/jvm/hotspot/gc/shared/OopStorage;
            astore 5 /* storage */
        66: .line 125
            aload 5 /* storage */
            ifnull 69
            aload 5 /* storage */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.OopStorage.findOop:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 69
        67: .line 126
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inWeakGlobalJNIHandles:Z
        68: .line 127
            aload 1 /* loc */
            areturn
        69: .line 130
      StackMap locals:
      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;
            astore 6 /* threads */
        start local 6 // sun.jvm.hotspot.runtime.Threads threads
        70: .line 131
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        71: goto 82
        72: .line 132
      StackMap locals: sun.jvm.hotspot.runtime.Threads int
      StackMap stack:
            aload 6 /* threads */
            iload 7 /* i */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getJavaThreadAt:(I)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 8 /* t */
        start local 8 // sun.jvm.hotspot.runtime.JavaThread t
        73: .line 133
            aload 8 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.activeHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 9 /* handleBlock */
        start local 9 // sun.jvm.hotspot.runtime.JNIHandleBlock handleBlock
        74: .line 134
            aload 9 /* handleBlock */
            ifnull 81
        75: .line 135
            aload 9 /* handleBlock */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandleBlock.blockContainingHandle:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 9 /* handleBlock */
        76: .line 136
            aload 9 /* handleBlock */
            ifnull 81
        77: .line 137
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inLocalJNIHandleBlock:Z
        78: .line 138
            aload 1 /* loc */
            aload 9 /* handleBlock */
            putfield sun.jvm.hotspot.utilities.PointerLocation.handleBlock:Lsun/jvm/hotspot/runtime/JNIHandleBlock;
        79: .line 139
            aload 1 /* loc */
            aload 8 /* t */
            putfield sun.jvm.hotspot.utilities.PointerLocation.handleThread:Lsun/jvm/hotspot/runtime/Thread;
        80: .line 140
            aload 1 /* loc */
            areturn
        end local 9 // sun.jvm.hotspot.runtime.JNIHandleBlock handleBlock
        end local 8 // sun.jvm.hotspot.runtime.JavaThread t
        81: .line 131
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        82: iload 7 /* i */
            aload 6 /* threads */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getNumberOfThreads:()I
            if_icmplt 72
        end local 7 // int i
        83: .line 146
            aload 1 /* loc */
            areturn
        end local 6 // sun.jvm.hotspot.runtime.Threads threads
        end local 5 // sun.jvm.hotspot.gc.shared.OopStorage storage
        end local 4 // sun.jvm.hotspot.runtime.JNIHandles handles
        end local 3 // sun.jvm.hotspot.interpreter.Interpreter interp
        end local 2 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
        end local 1 // sun.jvm.hotspot.utilities.PointerLocation loc
        end local 0 // sun.jvm.hotspot.debugger.Address a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   84     0            a  Lsun/jvm/hotspot/debugger/Address;
            1   84     1          loc  Lsun/jvm/hotspot/utilities/PointerLocation;
            2   84     2         heap  Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            4   31     3      genheap  Lsun/jvm/hotspot/gc/shared/GenCollectedHeap;
            6   13     4            i  I
            8   11     5            g  Lsun/jvm/hotspot/gc/shared/Generation;
           19   30     4      threads  Lsun/jvm/hotspot/runtime/Threads;
           20   30     5            i  I
           22   28     6            t  Lsun/jvm/hotspot/runtime/JavaThread;
           23   28     7         tlab  Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
           35   84     3       interp  Lsun/jvm/hotspot/interpreter/Interpreter;
           41   60     4            c  Lsun/jvm/hotspot/code/CodeCache;
           52   53     5           nm  Lsun/jvm/hotspot/code/NMethod;
           61   84     4      handles  Lsun/jvm/hotspot/runtime/JNIHandles;
           62   84     5      storage  Lsun/jvm/hotspot/gc/shared/OopStorage;
           70   84     6      threads  Lsun/jvm/hotspot/runtime/Threads;
           71   83     7            i  I
           73   81     8            t  Lsun/jvm/hotspot/runtime/JavaThread;
           74   81     9  handleBlock  Lsun/jvm/hotspot/runtime/JNIHandleBlock;
    MethodParameters:
      Name  Flags
      a     
}
SourceFile: "PointerFinder.java"