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"