public class sun.jvm.hotspot.tools.PStack 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.PStack
super_class: sun.jvm.hotspot.tools.Tool
{
private java.util.Map jframeCache;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
private java.util.Map proxyToThread;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
private java.io.PrintStream out;
descriptor: Ljava/io/PrintStream;
flags: (0x0002) ACC_PRIVATE
private boolean verbose;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean concurrentLocks;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
1: aload 0
iload 1
putfield sun.jvm.hotspot.tools.PStack.verbose:Z
2: aload 0
iload 2
putfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/jvm/hotspot/tools/PStack;
0 4 1 v Z
0 4 2 concurrentLocks Z
MethodParameters:
Name Flags
v
concurrentLocks
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
iconst_1
invokespecial sun.jvm.hotspot.tools.PStack.<init>:(ZZ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/jvm/hotspot/tools/PStack;
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/PStack;
0 2 1 d Lsun/jvm/hotspot/debugger/JVMDebugger;
MethodParameters:
Name Flags
d
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.jvm.hotspot.tools.PStack.run:(Ljava/io/PrintStream;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/jvm/hotspot/tools/PStack;
public void run(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.jvm.hotspot.tools.PStack.getAgent:()Lsun/jvm/hotspot/HotSpotAgent;
invokevirtual sun.jvm.hotspot.HotSpotAgent.getDebugger:()Lsun/jvm/hotspot/debugger/Debugger;
astore 2
start local 2 1: aload 0
aload 1
aload 2
invokevirtual sun.jvm.hotspot.tools.PStack.run:(Ljava/io/PrintStream;Lsun/jvm/hotspot/debugger/Debugger;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/jvm/hotspot/tools/PStack;
0 3 1 out Ljava/io/PrintStream;
1 3 2 dbg Lsun/jvm/hotspot/debugger/Debugger;
MethodParameters:
Name Flags
out
public void run(java.io.PrintStream, sun.jvm.hotspot.debugger.Debugger);
descriptor: (Ljava/io/PrintStream;Lsun/jvm/hotspot/debugger/Debugger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=17, args_size=3
start local 0 start local 1 start local 2 0: invokestatic sun.jvm.hotspot.utilities.PlatformInfo.getOS:()Ljava/lang/String;
ldc "darwin"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: aload 1
ldc "Not available on Darwin"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: return
3: StackMap locals:
StackMap stack:
aload 2
invokeinterface sun.jvm.hotspot.debugger.Debugger.getCDebugger:()Lsun/jvm/hotspot/debugger/cdbg/CDebugger;
astore 3
start local 3 4: aload 3
ifnull 97
5: aconst_null
astore 4
start local 4 6: aload 0
invokevirtual sun.jvm.hotspot.tools.PStack.initJFrameCache:()V
7: aload 0
getfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
ifeq 9
8: new sun.jvm.hotspot.runtime.ConcurrentLocksPrinter
dup
invokespecial sun.jvm.hotspot.runtime.ConcurrentLocksPrinter.<init>:()V
astore 4
9: StackMap locals: sun.jvm.hotspot.debugger.cdbg.CDebugger sun.jvm.hotspot.runtime.ConcurrentLocksPrinter
StackMap stack:
aload 1
invokestatic sun.jvm.hotspot.runtime.DeadlockDetector.print:(Ljava/io/PrintStream;)V
10: goto 13
StackMap locals:
StackMap stack: java.lang.Exception
11: astore 5
start local 5 12: aload 1
new java.lang.StringBuilder
dup
ldc "can't print deadlock information: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.Exception.getMessage:()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 5 13: StackMap locals:
StackMap stack:
aload 3
invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.getThreadList:()Ljava/util/List;
astore 5
start local 5 14: aload 3
invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.canDemangle:()Z
istore 6
start local 6 15: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
start local 7 16: goto 95
17: StackMap locals: java.util.List int java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.debugger.ThreadProxy
astore 8
start local 8 18: aload 3
aload 8
invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.topFrameForThread:(Lsun/jvm/hotspot/debugger/ThreadProxy;)Lsun/jvm/hotspot/debugger/cdbg/CFrame;
astore 9
start local 9 19: aload 1
ldc "----------------- "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
20: aload 1
aload 8
invokevirtual java.io.PrintStream.print:(Ljava/lang/Object;)V
21: aload 1
ldc " -----------------"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: aload 0
getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.runtime.JavaThread
astore 10
start local 10 23: aload 10
ifnull 87
24: aload 10
aload 1
invokevirtual sun.jvm.hotspot.runtime.JavaThread.printThreadInfoOn:(Ljava/io/PrintStream;)V
25: goto 87
26: StackMap locals: sun.jvm.hotspot.debugger.ThreadProxy sun.jvm.hotspot.debugger.cdbg.CFrame sun.jvm.hotspot.runtime.JavaThread
StackMap stack:
aload 9
invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.closestSymbolToPC:()Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
astore 11
start local 11 27: aload 9
invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.pc:()Lsun/jvm/hotspot/debugger/Address;
astore 12
start local 12 28: aload 1
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\t"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
29: aload 11
ifnull 39
30: aload 11
invokevirtual sun.jvm.hotspot.debugger.cdbg.ClosestSymbol.getName:()Ljava/lang/String;
astore 13
start local 13 31: iload 6
ifeq 33
32: aload 3
aload 13
invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.demangle:(Ljava/lang/String;)Ljava/lang/String;
astore 13
33: StackMap locals: sun.jvm.hotspot.debugger.cdbg.ClosestSymbol sun.jvm.hotspot.debugger.Address java.lang.String
StackMap stack:
aload 1
aload 13
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
34: aload 11
invokevirtual sun.jvm.hotspot.debugger.cdbg.ClosestSymbol.getOffset:()J
lstore 14
start local 14 35: lload 14
lconst_0
lcmp
ifeq 37
36: aload 1
new java.lang.StringBuilder
dup
ldc " + 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 14
invokestatic java.lang.Long.toHexString:(J)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.print:(Ljava/lang/String;)V
37: StackMap locals: long
StackMap stack:
aload 1
invokevirtual java.io.PrintStream.println:()V
end local 14 end local 13 38: goto 86
39: StackMap locals:
StackMap stack:
aconst_null
astore 13
start local 13 40: 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 14
start local 14 41: aload 14
aload 12
invokevirtual sun.jvm.hotspot.interpreter.Interpreter.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
ifeq 51
42: aload 0
aload 8
aload 9
invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.localVariableBase:()Lsun/jvm/hotspot/debugger/Address;
invokevirtual sun.jvm.hotspot.tools.PStack.getJavaNames:(Lsun/jvm/hotspot/debugger/ThreadProxy;Lsun/jvm/hotspot/debugger/Address;)[Ljava/lang/String;
astore 13
43: aload 13
ifnull 44
aload 13
arraylength
ifne 80
44: StackMap locals: java.lang.String[] sun.jvm.hotspot.interpreter.Interpreter
StackMap stack:
aload 1
ldc "<interpreter> "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
45: aload 14
aload 12
invokevirtual sun.jvm.hotspot.interpreter.Interpreter.getCodeletContaining:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
astore 15
start local 15 46: aload 15
ifnull 49
47: aload 15
invokevirtual sun.jvm.hotspot.interpreter.InterpreterCodelet.getDescription:()Ljava/lang/String;
astore 16
start local 16 48: aload 16
ifnull 49
aload 1
aload 16
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
end local 16 49: StackMap locals: sun.jvm.hotspot.interpreter.InterpreterCodelet
StackMap stack:
aload 1
invokevirtual java.io.PrintStream.println:()V
end local 15 50: goto 80
51: StackMap locals:
StackMap stack:
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 15
start local 15 52: aload 15
aload 12
invokevirtual sun.jvm.hotspot.code.CodeCache.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
ifeq 79
53: aload 15
aload 12
invokevirtual sun.jvm.hotspot.code.CodeCache.findBlobUnsafe:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/code/CodeBlob;
astore 16
start local 16 54: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isNMethod:()Z
ifeq 59
55: aload 0
aload 8
aload 9
invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.localVariableBase:()Lsun/jvm/hotspot/debugger/Address;
invokevirtual sun.jvm.hotspot.tools.PStack.getJavaNames:(Lsun/jvm/hotspot/debugger/ThreadProxy;Lsun/jvm/hotspot/debugger/Address;)[Ljava/lang/String;
astore 13
56: aload 13
ifnull 57
aload 13
arraylength
ifne 80
57: StackMap locals: sun.jvm.hotspot.code.CodeCache sun.jvm.hotspot.code.CodeBlob
StackMap stack:
aload 1
ldc "<Unknown compiled code>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
58: goto 80
StackMap locals:
StackMap stack:
59: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isBufferBlob:()Z
ifeq 62
60: aload 1
ldc "<StubRoutines>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
61: goto 80
StackMap locals:
StackMap stack:
62: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isRuntimeStub:()Z
ifeq 65
63: aload 1
ldc "<RuntimeStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
64: goto 80
StackMap locals:
StackMap stack:
65: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isDeoptimizationStub:()Z
ifeq 68
66: aload 1
ldc "<DeoptimizationStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
67: goto 80
StackMap locals:
StackMap stack:
68: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isUncommonTrapStub:()Z
ifeq 71
69: aload 1
ldc "<UncommonTrap>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
70: goto 80
StackMap locals:
StackMap stack:
71: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isExceptionStub:()Z
ifeq 74
72: aload 1
ldc "<ExceptionStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
73: goto 80
StackMap locals:
StackMap stack:
74: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isSafepointStub:()Z
ifeq 77
75: aload 1
ldc "<SafepointStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
76: goto 80
77: StackMap locals:
StackMap stack:
aload 1
ldc "<Unknown code blob>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 16 78: goto 80
79: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.jvm.hotspot.tools.PStack.printUnknown:(Ljava/io/PrintStream;)V
end local 15 80: StackMap locals:
StackMap stack:
aload 13
ifnull 86
aload 13
arraylength
ifeq 86
81: iconst_0
istore 15
start local 15 82: goto 85
83: StackMap locals: int
StackMap stack:
aload 1
aload 13
iload 15
aaload
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
84: iinc 15 1
StackMap locals:
StackMap stack:
85: iload 15
aload 13
arraylength
if_icmplt 83
end local 15 end local 14 end local 13 86: StackMap locals:
StackMap stack:
aload 9
aload 8
invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.sender:(Lsun/jvm/hotspot/debugger/ThreadProxy;)Lsun/jvm/hotspot/debugger/cdbg/CFrame;
astore 9
end local 12 end local 11 87: StackMap locals:
StackMap stack:
aload 9
ifnonnull 26
end local 10 end local 9 88: goto 91
StackMap locals: sun.jvm.hotspot.tools.PStack java.io.PrintStream sun.jvm.hotspot.debugger.Debugger sun.jvm.hotspot.debugger.cdbg.CDebugger sun.jvm.hotspot.runtime.ConcurrentLocksPrinter java.util.List int java.util.Iterator sun.jvm.hotspot.debugger.ThreadProxy
StackMap stack: java.lang.Exception
89: astore 9
start local 9 90: aload 9
invokevirtual java.lang.Exception.printStackTrace:()V
end local 9 91: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
ifeq 95
92: aload 0
getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.runtime.JavaThread
astore 9
start local 9 93: aload 9
ifnull 95
94: aload 4
aload 9
aload 1
invokevirtual sun.jvm.hotspot.runtime.ConcurrentLocksPrinter.print:(Lsun/jvm/hotspot/runtime/JavaThread;Ljava/io/PrintStream;)V
end local 9 end local 8 95: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
end local 7 end local 6 end local 5 end local 4 96: goto 101
97: StackMap locals: sun.jvm.hotspot.tools.PStack java.io.PrintStream sun.jvm.hotspot.debugger.Debugger sun.jvm.hotspot.debugger.cdbg.CDebugger
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.tools.PStack.getDebugeeType:()I
iconst_2
if_icmpne 100
98: aload 1
ldc "remote configuration is not yet implemented"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
99: goto 101
100: StackMap locals:
StackMap stack:
aload 1
ldc "not yet implemented (debugger does not support CDebugger)!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
101: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 102 0 this Lsun/jvm/hotspot/tools/PStack;
0 102 1 out Ljava/io/PrintStream;
0 102 2 dbg Lsun/jvm/hotspot/debugger/Debugger;
4 102 3 cdbg Lsun/jvm/hotspot/debugger/cdbg/CDebugger;
6 96 4 concLocksPrinter Lsun/jvm/hotspot/runtime/ConcurrentLocksPrinter;
12 13 5 exp Ljava/lang/Exception;
14 96 5 l Ljava/util/List;
15 96 6 cdbgCanDemangle Z
16 96 7 itr Ljava/util/Iterator;
18 95 8 th Lsun/jvm/hotspot/debugger/ThreadProxy;
19 88 9 f Lsun/jvm/hotspot/debugger/cdbg/CFrame;
23 88 10 jthread Lsun/jvm/hotspot/runtime/JavaThread;
27 87 11 sym Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
28 87 12 pc Lsun/jvm/hotspot/debugger/Address;
31 38 13 name Ljava/lang/String;
35 38 14 diff J
40 86 13 names [Ljava/lang/String;
41 86 14 interp Lsun/jvm/hotspot/interpreter/Interpreter;
46 50 15 ic Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
48 49 16 desc Ljava/lang/String;
52 80 15 c Lsun/jvm/hotspot/code/CodeCache;
54 78 16 cb Lsun/jvm/hotspot/code/CodeBlob;
82 86 15 i I
90 91 9 exp Ljava/lang/Exception;
93 95 9 jthread Lsun/jvm/hotspot/runtime/JavaThread;
Exception table:
from to target type
9 10 11 Class java.lang.Exception
18 88 89 Class java.lang.Exception
MethodParameters:
Name Flags
out
dbg
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.PStack
dup
invokespecial sun.jvm.hotspot.tools.PStack.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.jvm.hotspot.tools.PStack.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 t Lsun/jvm/hotspot/tools/PStack;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
private void initJFrameCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
2: 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 1
start local 1 3: aload 1
invokevirtual sun.jvm.hotspot.runtime.Threads.first:()Lsun/jvm/hotspot/runtime/JavaThread;
astore 2
start local 2 4: goto 19
5: StackMap locals: sun.jvm.hotspot.runtime.Threads sun.jvm.hotspot.runtime.JavaThread
StackMap stack:
new java.util.ArrayList
dup
bipush 10
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 6: aload 2
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getLastJavaVFrameDbg:()Lsun/jvm/hotspot/runtime/JavaVFrame;
astore 4
start local 4 7: goto 10
8: StackMap locals: java.util.List sun.jvm.hotspot.runtime.JavaVFrame
StackMap stack:
aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: aload 4
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.javaSender:()Lsun/jvm/hotspot/runtime/JavaVFrame;
astore 4
StackMap locals:
StackMap stack:
10: aload 4
ifnonnull 8
end local 4 11: goto 14
StackMap locals: sun.jvm.hotspot.tools.PStack sun.jvm.hotspot.runtime.Threads sun.jvm.hotspot.runtime.JavaThread java.util.List
StackMap stack: java.lang.Exception
12: astore 4
start local 4 13: aload 4
invokevirtual java.lang.Exception.printStackTrace:()V
end local 4 14: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.size:()I
anewarray sun.jvm.hotspot.runtime.JavaVFrame
astore 4
start local 4 15: aload 3
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
iconst_0
aload 4
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 0
getfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
aload 2
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 0
getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
aload 2
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 end local 3 18: aload 2
invokevirtual sun.jvm.hotspot.runtime.JavaThread.next:()Lsun/jvm/hotspot/runtime/JavaThread;
astore 2
StackMap locals:
StackMap stack:
19: aload 2
ifnonnull 5
end local 2 20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/jvm/hotspot/tools/PStack;
3 21 1 threads Lsun/jvm/hotspot/runtime/Threads;
4 20 2 cur Lsun/jvm/hotspot/runtime/JavaThread;
6 18 3 tmp Ljava/util/List;
7 11 4 vf Lsun/jvm/hotspot/runtime/JavaVFrame;
13 14 4 exp Ljava/lang/Exception;
15 18 4 jvframes [Lsun/jvm/hotspot/runtime/JavaVFrame;
Exception table:
from to target type
6 11 12 Class java.lang.Exception
private void printUnknown(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "\t????????"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/jvm/hotspot/tools/PStack;
0 2 1 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
out
private java.lang.String[] getJavaNames(sun.jvm.hotspot.debugger.ThreadProxy, sun.jvm.hotspot.debugger.Address);
descriptor: (Lsun/jvm/hotspot/debugger/ThreadProxy;Lsun/jvm/hotspot/debugger/Address;)[Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.runtime.JavaVFrame[]
astore 3
start local 3 3: aload 3
ifnonnull 4
aconst_null
areturn
4: StackMap locals: sun.jvm.hotspot.runtime.JavaVFrame[]
StackMap stack:
new java.util.ArrayList
dup
bipush 10
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 32
7: StackMap locals: java.util.List int
StackMap stack:
aload 3
iload 5
aaload
astore 6
start local 6 8: aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getFrame:()Lsun/jvm/hotspot/runtime/Frame;
astore 7
start local 7 9: aload 2
aload 7
invokevirtual sun.jvm.hotspot.runtime.Frame.getFP:()Lsun/jvm/hotspot/debugger/Address;
invokeinterface sun.jvm.hotspot.debugger.Address.equals:(Ljava/lang/Object;)Z
ifeq 31
10: new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 8
start local 8 11: aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getMethod:()Lsun/jvm/hotspot/oops/Method;
astore 9
start local 9 12: aload 8
ldc "* "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
13: aload 8
aload 9
invokevirtual sun.jvm.hotspot.oops.Method.externalNameAndSignature:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
14: aload 8
new java.lang.StringBuilder
dup
ldc " bci:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getBCI:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
15: aload 9
aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getBCI:()I
invokevirtual sun.jvm.hotspot.oops.Method.getLineNumberFromBCI:(I)I
istore 10
start local 10 16: iload 10
iconst_m1
if_icmpeq 18
17: aload 8
new java.lang.StringBuilder
dup
ldc " line:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
18: StackMap locals: sun.jvm.hotspot.tools.PStack sun.jvm.hotspot.debugger.ThreadProxy sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.runtime.JavaVFrame[] java.util.List int sun.jvm.hotspot.runtime.JavaVFrame sun.jvm.hotspot.runtime.Frame java.lang.StringBuffer sun.jvm.hotspot.oops.Method int
StackMap stack:
aload 0
getfield sun.jvm.hotspot.tools.PStack.verbose:Z
ifeq 20
19: aload 8
new java.lang.StringBuilder
dup
ldc " Method*:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual sun.jvm.hotspot.oops.Method.getAddress:()Lsun/jvm/hotspot/debugger/Address;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
20: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isCompiledFrame:()Z
ifeq 25
21: aload 8
ldc " (Compiled frame"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
22: aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isDeoptimized:()Z
ifeq 27
23: aload 8
ldc " [deoptimized]"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
24: goto 27
StackMap locals:
StackMap stack:
25: aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isInterpretedFrame:()Z
ifeq 27
26: aload 8
ldc " (Interpreted frame"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
27: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.mayBeImpreciseDbg:()Z
ifeq 29
28: aload 8
ldc "; information may be imprecise"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
29: StackMap locals:
StackMap stack:
aload 8
ldc ")"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
30: aload 4
aload 8
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 8 end local 7 end local 6 31: StackMap locals: sun.jvm.hotspot.tools.PStack sun.jvm.hotspot.debugger.ThreadProxy sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.runtime.JavaVFrame[] java.util.List int
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
32: iload 5
aload 3
arraylength
if_icmplt 7
end local 5 33: aload 4
invokeinterface java.util.List.size:()I
anewarray java.lang.String
astore 5
start local 5 34: aload 4
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
iconst_0
aload 5
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: aload 5
areturn
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 36 0 this Lsun/jvm/hotspot/tools/PStack;
0 36 1 th Lsun/jvm/hotspot/debugger/ThreadProxy;
0 36 2 fp Lsun/jvm/hotspot/debugger/Address;
3 36 3 jvframes [Lsun/jvm/hotspot/runtime/JavaVFrame;
5 36 4 names Ljava/util/List;
6 33 5 fCount I
8 31 6 vf Lsun/jvm/hotspot/runtime/JavaVFrame;
9 31 7 f Lsun/jvm/hotspot/runtime/Frame;
11 31 8 sb Ljava/lang/StringBuffer;
12 31 9 method Lsun/jvm/hotspot/oops/Method;
16 31 10 lineNumber I
34 36 5 res [Ljava/lang/String;
MethodParameters:
Name Flags
th
fp
}
SourceFile: "PStack.java"