class sun.jvm.hotspot.CommandProcessor$16 extends sun.jvm.hotspot.CommandProcessor$Command
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.jvm.hotspot.CommandProcessor$16
super_class: sun.jvm.hotspot.CommandProcessor$Command
{
final sun.jvm.hotspot.CommandProcessor this$0;
descriptor: Lsun/jvm/hotspot/CommandProcessor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.jvm.hotspot.CommandProcessor, sun.jvm.hotspot.CommandProcessor, java.lang.String, java.lang.String, boolean);
descriptor: (Lsun/jvm/hotspot/CommandProcessor;Lsun/jvm/hotspot/CommandProcessor;Ljava/lang/String;Ljava/lang/String;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=6
start local 0 // sun.jvm.hotspot.CommandProcessor$16 this
start local 3 // java.lang.String $anonymous0
start local 4 // java.lang.String $anonymous1
start local 5 // boolean $anonymous2
0: .line 786
aload 0 /* this */
aload 2
putfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
aload 0 /* this */
aload 1
aload 3 /* $anonymous0 */
aload 4 /* $anonymous1 */
iload 5 /* $anonymous2 */
invokespecial sun.jvm.hotspot.CommandProcessor$Command.<init>:(Lsun/jvm/hotspot/CommandProcessor;Ljava/lang/String;Ljava/lang/String;Z)V
return
end local 5 // boolean $anonymous2
end local 4 // java.lang.String $anonymous1
end local 3 // java.lang.String $anonymous0
end local 0 // sun.jvm.hotspot.CommandProcessor$16 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/CommandProcessor$16;
0 1 3 $anonymous0 Ljava/lang/String;
0 1 4 $anonymous1 Ljava/lang/String;
0 1 5 $anonymous2 Z
MethodParameters:
Name Flags
this$0 final
this$1 final
$anonymous0
$anonymous1
$anonymous2
public void doit(sun.jvm.hotspot.CommandProcessor$Tokens);
descriptor: (Lsun/jvm/hotspot/CommandProcessor$Tokens;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=2
start local 0 // sun.jvm.hotspot.CommandProcessor$16 this
start local 1 // sun.jvm.hotspot.CommandProcessor$Tokens t
0: .line 788
aload 1 /* t */
invokevirtual sun.jvm.hotspot.CommandProcessor$Tokens.countTokens:()I
istore 2 /* tokens */
start local 2 // int tokens
1: .line 789
iload 2 /* tokens */
iconst_1
if_icmpeq 4
iload 2 /* tokens */
iconst_2
if_icmpne 2
aload 1 /* t */
invokevirtual sun.jvm.hotspot.CommandProcessor$Tokens.nextToken:()Ljava/lang/String;
ldc "-c"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
2: .line 790
StackMap locals: int
StackMap stack:
aload 0 /* this */
invokevirtual sun.jvm.hotspot.CommandProcessor$16.usage:()V
3: .line 791
return
4: .line 793
StackMap locals:
StackMap stack:
iload 2 /* tokens */
iconst_2
if_icmpne 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 3 /* chase */
start local 3 // boolean chase
7: .line 794
invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getRevPtrs:()Lsun/jvm/hotspot/utilities/ReversePtrs;
astore 4 /* revptrs */
start local 4 // sun.jvm.hotspot.utilities.ReversePtrs revptrs
8: .line 795
aload 4 /* revptrs */
ifnonnull 27
9: .line 796
aload 0 /* this */
getfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
getfield sun.jvm.hotspot.CommandProcessor.out:Ljava/io/PrintStream;
ldc "Computing reverse pointers..."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: .line 797
new sun.jvm.hotspot.utilities.ReversePtrsAnalysis
dup
invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis.<init>:()V
astore 5 /* analysis */
start local 5 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis analysis
11: .line 798
iconst_1
newarray 4
astore 6 /* complete */
start local 6 // boolean[] complete
12: .line 799
new sun.jvm.hotspot.CommandProcessor$16$1
dup
aload 0 /* this */
aload 6 /* complete */
invokespecial sun.jvm.hotspot.CommandProcessor$16$1.<init>:(Lsun/jvm/hotspot/CommandProcessor$16;[Z)V
astore 7 /* thunk */
start local 7 // sun.jvm.hotspot.utilities.HeapProgressThunk thunk
13: .line 806
aload 5 /* analysis */
aload 7 /* thunk */
invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.setHeapProgressThunk:(Lsun/jvm/hotspot/utilities/HeapProgressThunk;)V
14: .line 807
aload 5 /* analysis */
invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.run:()V
15: .line 808
goto 24
16: .line 809
StackMap locals: sun.jvm.hotspot.CommandProcessor$16 sun.jvm.hotspot.CommandProcessor$Tokens int int sun.jvm.hotspot.utilities.ReversePtrs sun.jvm.hotspot.utilities.ReversePtrsAnalysis boolean[] sun.jvm.hotspot.utilities.HeapProgressThunk
StackMap stack:
aload 7 /* thunk */
dup
astore 8
monitorenter
17: .line 811
aload 7 /* thunk */
invokevirtual java.lang.Object.wait:()V
18: .line 812
goto 20
StackMap locals: sun.jvm.hotspot.CommandProcessor$16 sun.jvm.hotspot.CommandProcessor$Tokens int int sun.jvm.hotspot.utilities.ReversePtrs sun.jvm.hotspot.utilities.ReversePtrsAnalysis boolean[] sun.jvm.hotspot.utilities.HeapProgressThunk sun.jvm.hotspot.utilities.HeapProgressThunk
StackMap stack: java.lang.Exception
19: pop
20: .line 809
StackMap locals:
StackMap stack:
aload 8
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 8
monitorexit
23: athrow
24: .line 808
StackMap locals:
StackMap stack:
aload 6 /* complete */
iconst_0
baload
ifeq 16
25: .line 816
invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getRevPtrs:()Lsun/jvm/hotspot/utilities/ReversePtrs;
astore 4 /* revptrs */
26: .line 817
aload 0 /* this */
getfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
getfield sun.jvm.hotspot.CommandProcessor.out:Ljava/io/PrintStream;
ldc "Done."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 7 // sun.jvm.hotspot.utilities.HeapProgressThunk thunk
end local 6 // boolean[] complete
end local 5 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis analysis
27: .line 819
StackMap locals:
StackMap stack:
invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getDebugger:()Lsun/jvm/hotspot/debugger/JVMDebugger;
aload 1 /* t */
invokevirtual sun.jvm.hotspot.CommandProcessor$Tokens.nextToken:()Ljava/lang/String;
invokeinterface sun.jvm.hotspot.debugger.JVMDebugger.parseAddress:(Ljava/lang/String;)Lsun/jvm/hotspot/debugger/Address;
astore 5 /* a */
start local 5 // sun.jvm.hotspot.debugger.Address a
28: .line 820
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;
aload 5 /* a */
invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.isInReserved:(Lsun/jvm/hotspot/debugger/Address;)Z
ifeq 53
29: .line 821
aload 5 /* a */
lconst_0
invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetToAsOopHandle:(J)Lsun/jvm/hotspot/debugger/OopHandle;
astore 6 /* handle */
start local 6 // sun.jvm.hotspot.debugger.OopHandle handle
30: .line 822
invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
aload 6 /* handle */
invokevirtual sun.jvm.hotspot.oops.ObjectHeap.newOop:(Lsun/jvm/hotspot/debugger/OopHandle;)Lsun/jvm/hotspot/oops/Oop;
astore 7 /* oop */
start local 7 // sun.jvm.hotspot.oops.Oop oop
31: .line 823
aload 4 /* revptrs */
aload 7 /* oop */
invokevirtual sun.jvm.hotspot.utilities.ReversePtrs.get:(Lsun/jvm/hotspot/oops/Oop;)Ljava/util/ArrayList;
astore 8 /* ptrs */
start local 8 // java.util.ArrayList ptrs
32: .line 824
aload 8 /* ptrs */
ifnonnull 35
33: .line 825
aload 0 /* this */
getfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
getfield sun.jvm.hotspot.CommandProcessor.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "no live references to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5 /* a */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: .line 826
goto 53
35: .line 827
StackMap locals: sun.jvm.hotspot.CommandProcessor$16 sun.jvm.hotspot.CommandProcessor$Tokens int int sun.jvm.hotspot.utilities.ReversePtrs sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.OopHandle sun.jvm.hotspot.oops.Oop java.util.ArrayList
StackMap stack:
iload 3 /* chase */
ifeq 44
36: .line 828
goto 42
37: .line 829
StackMap locals:
StackMap stack:
aload 8 /* ptrs */
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.jvm.hotspot.utilities.LivenessPathElement
astore 9 /* e */
start local 9 // sun.jvm.hotspot.utilities.LivenessPathElement e
38: .line 830
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 10 /* bos */
start local 10 // java.io.ByteArrayOutputStream bos
39: .line 831
aload 9 /* e */
invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
new java.io.PrintStream
dup
aload 10 /* bos */
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
invokestatic sun.jvm.hotspot.oops.Oop.printOopValueOn:(Lsun/jvm/hotspot/oops/Oop;Ljava/io/PrintStream;)V
40: .line 832
aload 0 /* this */
getfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
getfield sun.jvm.hotspot.CommandProcessor.out:Ljava/io/PrintStream;
aload 10 /* bos */
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
41: .line 833
aload 4 /* revptrs */
aload 9 /* e */
invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
invokevirtual sun.jvm.hotspot.utilities.ReversePtrs.get:(Lsun/jvm/hotspot/oops/Oop;)Ljava/util/ArrayList;
astore 8 /* ptrs */
end local 10 // java.io.ByteArrayOutputStream bos
end local 9 // sun.jvm.hotspot.utilities.LivenessPathElement e
42: .line 828
StackMap locals:
StackMap stack:
aload 8 /* ptrs */
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmpeq 37
43: .line 835
goto 53
44: .line 836
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* i */
start local 9 // int i
45: goto 52
46: .line 837
StackMap locals: int
StackMap stack:
aload 8 /* ptrs */
iload 9 /* i */
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.jvm.hotspot.utilities.LivenessPathElement
astore 10 /* e */
start local 10 // sun.jvm.hotspot.utilities.LivenessPathElement e
47: .line 838
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 11 /* bos */
start local 11 // java.io.ByteArrayOutputStream bos
48: .line 839
aload 10 /* e */
invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
new java.io.PrintStream
dup
aload 11 /* bos */
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
invokestatic sun.jvm.hotspot.oops.Oop.printOopValueOn:(Lsun/jvm/hotspot/oops/Oop;Ljava/io/PrintStream;)V
49: .line 840
aload 0 /* this */
getfield sun.jvm.hotspot.CommandProcessor$16.this$0:Lsun/jvm/hotspot/CommandProcessor;
getfield sun.jvm.hotspot.CommandProcessor.out:Ljava/io/PrintStream;
aload 11 /* bos */
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
50: .line 841
aload 10 /* e */
invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
astore 7 /* oop */
end local 11 // java.io.ByteArrayOutputStream bos
end local 10 // sun.jvm.hotspot.utilities.LivenessPathElement e
51: .line 836
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
52: iload 9 /* i */
aload 8 /* ptrs */
invokevirtual java.util.ArrayList.size:()I
if_icmplt 46
end local 9 // int i
end local 8 // java.util.ArrayList ptrs
end local 7 // sun.jvm.hotspot.oops.Oop oop
end local 6 // sun.jvm.hotspot.debugger.OopHandle handle
53: .line 846
StackMap locals: sun.jvm.hotspot.CommandProcessor$16 sun.jvm.hotspot.CommandProcessor$Tokens int int sun.jvm.hotspot.utilities.ReversePtrs sun.jvm.hotspot.debugger.Address
StackMap stack:
return
end local 5 // sun.jvm.hotspot.debugger.Address a
end local 4 // sun.jvm.hotspot.utilities.ReversePtrs revptrs
end local 3 // boolean chase
end local 2 // int tokens
end local 1 // sun.jvm.hotspot.CommandProcessor$Tokens t
end local 0 // sun.jvm.hotspot.CommandProcessor$16 this
LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lsun/jvm/hotspot/CommandProcessor$16;
0 54 1 t Lsun/jvm/hotspot/CommandProcessor$Tokens;
1 54 2 tokens I
7 54 3 chase Z
8 54 4 revptrs Lsun/jvm/hotspot/utilities/ReversePtrs;
11 27 5 analysis Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
12 27 6 complete [Z
13 27 7 thunk Lsun/jvm/hotspot/utilities/HeapProgressThunk;
28 54 5 a Lsun/jvm/hotspot/debugger/Address;
30 53 6 handle Lsun/jvm/hotspot/debugger/OopHandle;
31 53 7 oop Lsun/jvm/hotspot/oops/Oop;
32 53 8 ptrs Ljava/util/ArrayList;
38 42 9 e Lsun/jvm/hotspot/utilities/LivenessPathElement;
39 42 10 bos Ljava/io/ByteArrayOutputStream;
45 53 9 i I
47 51 10 e Lsun/jvm/hotspot/utilities/LivenessPathElement;
48 51 11 bos Ljava/io/ByteArrayOutputStream;
Exception table:
from to target type
17 18 19 Class java.lang.Exception
17 21 22 any
22 23 22 any
MethodParameters:
Name Flags
t
}
SourceFile: "CommandProcessor.java"
EnclosingMethod: sun.jvm.hotspot.CommandProcessor
NestHost: sun.jvm.hotspot.CommandProcessor
InnerClasses:
sun.jvm.hotspot.CommandProcessor$16
sun.jvm.hotspot.CommandProcessor$16$1
abstract Command = sun.jvm.hotspot.CommandProcessor$Command of sun.jvm.hotspot.CommandProcessor
Tokens = sun.jvm.hotspot.CommandProcessor$Tokens of sun.jvm.hotspot.CommandProcessor