public class com.codahale.metrics.jvm.ThreadDump
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.codahale.metrics.jvm.ThreadDump
super_class: java.lang.Object
{
private final java.lang.management.ThreadMXBean threadMXBean;
descriptor: Ljava/lang/management/ThreadMXBean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.management.ThreadMXBean);
descriptor: (Ljava/lang/management/ThreadMXBean;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.codahale.metrics.jvm.ThreadDump.threadMXBean:Ljava/lang/management/ThreadMXBean;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/codahale/metrics/jvm/ThreadDump;
0 3 1 threadMXBean Ljava/lang/management/ThreadMXBean;
MethodParameters:
Name Flags
threadMXBean
public void dump(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
iconst_1
aload 1
invokevirtual com.codahale.metrics.jvm.ThreadDump.dump:(ZZLjava/io/OutputStream;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/codahale/metrics/jvm/ThreadDump;
0 2 1 out Ljava/io/OutputStream;
MethodParameters:
Name Flags
out
public void dump(boolean, boolean, java.io.OutputStream);
descriptor: (ZZLjava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.codahale.metrics.jvm.ThreadDump.threadMXBean:Ljava/lang/management/ThreadMXBean;
iload 1
iload 2
invokeinterface java.lang.management.ThreadMXBean.dumpAllThreads:(ZZ)[Ljava/lang/management/ThreadInfo;
astore 4
start local 4 1: new java.io.PrintWriter
dup
new java.io.OutputStreamWriter
dup
aload 3
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 5
start local 5 2: aload 4
arraylength
iconst_1
isub
istore 6
start local 6 3: goto 59
4: StackMap locals: java.lang.management.ThreadInfo[] java.io.PrintWriter int
StackMap stack:
aload 4
iload 6
aaload
astore 7
start local 7 5: aload 5
ldc "\"%s\" id=%d state=%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
6: aload 7
invokevirtual java.lang.management.ThreadInfo.getThreadName:()Ljava/lang/String;
aastore
dup
iconst_1
7: aload 7
invokevirtual java.lang.management.ThreadInfo.getThreadId:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
8: aload 7
invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
aastore
9: invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
10: aload 7
invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
astore 8
start local 8 11: aload 8
ifnull 21
aload 7
invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
getstatic java.lang.Thread$State.BLOCKED:Ljava/lang/Thread$State;
if_acmpeq 21
12: aload 5
ldc "%n - waiting on <0x%08x> (a %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
13: aload 8
invokevirtual java.lang.management.LockInfo.getIdentityHashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
14: aload 8
invokevirtual java.lang.management.LockInfo.getClassName:()Ljava/lang/String;
aastore
15: invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
16: aload 5
ldc "%n - locked <0x%08x> (a %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
17: aload 8
invokevirtual java.lang.management.LockInfo.getIdentityHashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
18: aload 8
invokevirtual java.lang.management.LockInfo.getClassName:()Ljava/lang/String;
aastore
19: invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
20: goto 26
StackMap locals: java.lang.management.ThreadInfo java.lang.management.LockInfo
StackMap stack:
21: aload 8
ifnull 26
aload 7
invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
getstatic java.lang.Thread$State.BLOCKED:Ljava/lang/Thread$State;
if_acmpne 26
22: aload 5
ldc "%n - waiting to lock <0x%08x> (a %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
23: aload 8
invokevirtual java.lang.management.LockInfo.getIdentityHashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
24: aload 8
invokevirtual java.lang.management.LockInfo.getClassName:()Ljava/lang/String;
aastore
25: invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
26: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.management.ThreadInfo.isSuspended:()Z
ifeq 28
27: aload 5
ldc " (suspended)"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.management.ThreadInfo.isInNative:()Z
ifeq 30
29: aload 5
ldc " (running in native)"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
30: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.PrintWriter.println:()V
31: aload 7
invokevirtual java.lang.management.ThreadInfo.getLockOwnerName:()Ljava/lang/String;
ifnull 33
32: aload 5
ldc " owned by %s id=%d%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 7
invokevirtual java.lang.management.ThreadInfo.getLockOwnerName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 7
invokevirtual java.lang.management.ThreadInfo.getLockOwnerId:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
33: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.management.ThreadInfo.getStackTrace:()[Ljava/lang/StackTraceElement;
astore 9
start local 9 34: aload 7
invokevirtual java.lang.management.ThreadInfo.getLockedMonitors:()[Ljava/lang/management/MonitorInfo;
astore 10
start local 10 35: iconst_0
istore 11
start local 11 36: goto 47
37: StackMap locals: java.lang.StackTraceElement[] java.lang.management.MonitorInfo[] int
StackMap stack:
aload 9
iload 11
aaload
astore 12
start local 12 38: aload 5
ldc " at %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
39: iconst_1
istore 13
start local 13 40: goto 45
41: StackMap locals: java.lang.StackTraceElement int
StackMap stack:
aload 10
iload 13
aaload
astore 14
start local 14 42: aload 14
invokevirtual java.lang.management.MonitorInfo.getLockedStackDepth:()I
iload 11
if_icmpne 44
43: aload 5
ldc " - locked %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 14
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
end local 14 44: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
45: iload 13
aload 10
arraylength
if_icmplt 41
end local 13 end local 12 46: iinc 11 1
StackMap locals:
StackMap stack:
47: iload 11
aload 9
arraylength
if_icmplt 37
end local 11 48: aload 5
invokevirtual java.io.PrintWriter.println:()V
49: aload 7
invokevirtual java.lang.management.ThreadInfo.getLockedSynchronizers:()[Ljava/lang/management/LockInfo;
astore 11
start local 11 50: aload 11
arraylength
ifle 58
51: aload 5
ldc " Locked synchronizers: count = %d%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 11
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
52: aload 11
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 56
StackMap locals: com.codahale.metrics.jvm.ThreadDump int int java.io.OutputStream java.lang.management.ThreadInfo[] java.io.PrintWriter int java.lang.management.ThreadInfo java.lang.management.LockInfo java.lang.StackTraceElement[] java.lang.management.MonitorInfo[] java.lang.management.LockInfo[] top int int java.lang.management.LockInfo[]
StackMap stack:
53: aload 15
iload 13
aaload
astore 12
start local 12 54: aload 5
ldc " - %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
end local 12 55: iinc 13 1
StackMap locals:
StackMap stack:
56: iload 13
iload 14
if_icmplt 53
57: aload 5
invokevirtual java.io.PrintWriter.println:()V
end local 11 end local 10 end local 9 end local 8 end local 7 58: StackMap locals: com.codahale.metrics.jvm.ThreadDump int int java.io.OutputStream java.lang.management.ThreadInfo[] java.io.PrintWriter int
StackMap stack:
iinc 6 -1
StackMap locals:
StackMap stack:
59: iload 6
ifge 4
end local 6 60: aload 5
invokevirtual java.io.PrintWriter.println:()V
61: aload 5
invokevirtual java.io.PrintWriter.flush:()V
62: return
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 63 0 this Lcom/codahale/metrics/jvm/ThreadDump;
0 63 1 lockedMonitors Z
0 63 2 lockedSynchronizers Z
0 63 3 out Ljava/io/OutputStream;
1 63 4 threads [Ljava/lang/management/ThreadInfo;
2 63 5 writer Ljava/io/PrintWriter;
3 60 6 ti I
5 58 7 t Ljava/lang/management/ThreadInfo;
11 58 8 lock Ljava/lang/management/LockInfo;
34 58 9 elements [Ljava/lang/StackTraceElement;
35 58 10 monitors [Ljava/lang/management/MonitorInfo;
36 48 11 i I
38 46 12 element Ljava/lang/StackTraceElement;
40 46 13 j I
42 44 14 monitor Ljava/lang/management/MonitorInfo;
50 58 11 locks [Ljava/lang/management/LockInfo;
54 55 12 l Ljava/lang/management/LockInfo;
MethodParameters:
Name Flags
lockedMonitors
lockedSynchronizers
out
}
SourceFile: "ThreadDump.java"
InnerClasses:
public final State = java.lang.Thread$State of java.lang.Thread