public class sun.jvm.hotspot.tools.FinalizerInfo extends sun.jvm.hotspot.tools.Tool
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.jvm.hotspot.tools.FinalizerInfo
super_class: sun.jvm.hotspot.tools.Tool
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/jvm/hotspot/tools/FinalizerInfo;
public void <init>(sun.jvm.hotspot.debugger.JVMDebugger);
descriptor: (Lsun/jvm/hotspot/debugger/JVMDebugger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/jvm/hotspot/tools/FinalizerInfo;
0 2 1 d Lsun/jvm/hotspot/debugger/JVMDebugger;
MethodParameters:
Name Flags
d
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "finalizerInfo"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/tools/FinalizerInfo;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new sun.jvm.hotspot.tools.FinalizerInfo
dup
invokespecial sun.jvm.hotspot.tools.FinalizerInfo.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.jvm.hotspot.tools.FinalizerInfo.execute:([Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 args [Ljava/lang/String;
1 3 1 finfo Lsun/jvm/hotspot/tools/FinalizerInfo;
MethodParameters:
Name Flags
args
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=1
start local 0 0: ldc "java.lang.ref.Finalizer"
invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.findInstanceKlass:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/InstanceKlass;
1: astore 1
start local 1 2: iconst_1
anewarray sun.jvm.hotspot.oops.Oop
astore 2
start local 2 3: aload 1
new sun.jvm.hotspot.tools.FinalizerInfo$1
dup
aload 0
aload 2
invokespecial sun.jvm.hotspot.tools.FinalizerInfo$1.<init>:(Lsun/jvm/hotspot/tools/FinalizerInfo;[Lsun/jvm/hotspot/oops/Oop;)V
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.iterateStaticFields:(Lsun/jvm/hotspot/oops/OopVisitor;)V
4: aload 2
iconst_0
aaload
astore 3
start local 3 5: aload 3
invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
astore 4
start local 4 6: aload 4
ldc "queueLength"
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
astore 5
start local 5 7: aload 5
aload 3
invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
lstore 6
start local 6 8: aload 4
ldc "head"
ldc "Ljava/lang/ref/Reference;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
astore 8
start local 8 9: aload 8
aload 3
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
astore 9
start local 9 10: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Number of objects pending for finalization: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: aload 9
ifnull 39
12: aload 9
invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
astore 4
13: aload 4
ldc "referent"
ldc "Ljava/lang/Object;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
14: astore 10
start local 10 15: aload 4
ldc "next"
ldc "Ljava/lang/ref/Reference;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
16: astore 11
start local 11 17: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 12
start local 12 18: StackMap locals: sun.jvm.hotspot.tools.FinalizerInfo sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.oops.LongField long sun.jvm.hotspot.oops.OopField sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.oops.OopField sun.jvm.hotspot.oops.OopField java.util.HashMap
StackMap stack:
aload 10
aload 9
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
astore 13
start local 13 19: aload 13
invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
astore 14
start local 14 20: aload 12
aload 14
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifne 22
21: aload 12
aload 14
new sun.jvm.hotspot.oops.ObjectHistogramElement
dup
aload 14
invokespecial sun.jvm.hotspot.oops.ObjectHistogramElement.<init>:(Lsun/jvm/hotspot/oops/Klass;)V
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: StackMap locals: sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.oops.Klass
StackMap stack:
aload 12
aload 14
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.ObjectHistogramElement
aload 13
invokevirtual sun.jvm.hotspot.oops.ObjectHistogramElement.updateWith:(Lsun/jvm/hotspot/oops/Oop;)V
23: aload 11
aload 9
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
astore 15
start local 15 24: aload 15
ifnull 27
aload 15
aload 9
invokevirtual sun.jvm.hotspot.oops.Oop.equals:(Ljava/lang/Object;)Z
ifeq 25
goto 27
25: StackMap locals: sun.jvm.hotspot.oops.Oop
StackMap stack:
aload 15
astore 9
end local 15 end local 14 end local 13 26: goto 18
27: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 13
start local 13 28: aload 13
aload 12
invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
29: aload 13
new sun.jvm.hotspot.tools.FinalizerInfo$2
dup
aload 0
invokespecial sun.jvm.hotspot.tools.FinalizerInfo$2.<init>:(Lsun/jvm/hotspot/tools/FinalizerInfo;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
30: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
31: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Count\tClass description"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-------------------------------------------------------"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
33: iconst_0
istore 14
start local 14 34: goto 38
35: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 13
iload 14
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.ObjectHistogramElement
astore 15
start local 15 36: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
aload 15
invokevirtual sun.jvm.hotspot.oops.ObjectHistogramElement.getCount:()J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\t"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 15
invokevirtual sun.jvm.hotspot.oops.ObjectHistogramElement.getDescription:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 15 37: iinc 14 1
StackMap locals:
StackMap stack:
38: iload 14
aload 13
invokevirtual java.util.ArrayList.size:()I
if_icmplt 35
end local 14 end local 13 end local 12 end local 11 end local 10 39: StackMap locals: sun.jvm.hotspot.tools.FinalizerInfo sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.oops.LongField long sun.jvm.hotspot.oops.OopField sun.jvm.hotspot.oops.Oop
StackMap stack:
return
end local 9 end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lsun/jvm/hotspot/tools/FinalizerInfo;
2 40 1 ik Lsun/jvm/hotspot/oops/InstanceKlass;
3 40 2 queueref [Lsun/jvm/hotspot/oops/Oop;
5 40 3 queue Lsun/jvm/hotspot/oops/Oop;
6 40 4 k Lsun/jvm/hotspot/oops/InstanceKlass;
7 40 5 queueLengthField Lsun/jvm/hotspot/oops/LongField;
8 40 6 queueLength J
9 40 8 headField Lsun/jvm/hotspot/oops/OopField;
10 40 9 head Lsun/jvm/hotspot/oops/Oop;
15 39 10 referentField Lsun/jvm/hotspot/oops/OopField;
17 39 11 nextField Lsun/jvm/hotspot/oops/OopField;
18 39 12 map Ljava/util/HashMap;
19 26 13 referent Lsun/jvm/hotspot/oops/Oop;
20 26 14 klass Lsun/jvm/hotspot/oops/Klass;
24 26 15 next Lsun/jvm/hotspot/oops/Oop;
28 39 13 list Ljava/util/ArrayList;
34 39 14 i I
36 37 15 e Lsun/jvm/hotspot/oops/ObjectHistogramElement;
}
SourceFile: "FinalizerInfo.java"
NestMembers:
sun.jvm.hotspot.tools.FinalizerInfo$1 sun.jvm.hotspot.tools.FinalizerInfo$2
InnerClasses:
sun.jvm.hotspot.tools.FinalizerInfo$1
sun.jvm.hotspot.tools.FinalizerInfo$2