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=19, 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 104
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 102
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 94
24: aload 10
aload 1
invokevirtual sun.jvm.hotspot.runtime.JavaThread.printThreadInfoOn:(Ljava/io/PrintStream;)V
25: goto 94
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 93
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 87
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 87
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 86
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 66
55: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isNativeMethod:()Z
ifeq 62
56: aload 1
aload 16
checkcast sun.jvm.hotspot.code.CompiledMethod
invokevirtual sun.jvm.hotspot.code.CompiledMethod.getMethod:()Lsun/jvm/hotspot/oops/Method;
invokevirtual sun.jvm.hotspot.oops.Method.externalNameAndSignature:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
57: aload 12
aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.codeBegin:()Lsun/jvm/hotspot/debugger/Address;
invokeinterface sun.jvm.hotspot.debugger.Address.minus:(Lsun/jvm/hotspot/debugger/Address;)J
lstore 17
start local 17 58: lload 17
lconst_0
lcmp
ifeq 60
59: aload 1
new java.lang.StringBuilder
dup
ldc " + 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 17
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
60: StackMap locals: sun.jvm.hotspot.code.CodeCache sun.jvm.hotspot.code.CodeBlob long
StackMap stack:
aload 1
ldc " (Native method)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 17 61: goto 87
62: StackMap locals:
StackMap stack:
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
63: aload 13
ifnull 64
aload 13
arraylength
ifne 87
64: StackMap locals:
StackMap stack:
aload 1
ldc "<Unknown compiled code>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
65: goto 87
StackMap locals:
StackMap stack:
66: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isBufferBlob:()Z
ifeq 69
67: aload 1
ldc "<StubRoutines>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
68: goto 87
StackMap locals:
StackMap stack:
69: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isRuntimeStub:()Z
ifeq 72
70: aload 1
ldc "<RuntimeStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
71: goto 87
StackMap locals:
StackMap stack:
72: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isDeoptimizationStub:()Z
ifeq 75
73: aload 1
ldc "<DeoptimizationStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
74: goto 87
StackMap locals:
StackMap stack:
75: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isUncommonTrapStub:()Z
ifeq 78
76: aload 1
ldc "<UncommonTrap>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
77: goto 87
StackMap locals:
StackMap stack:
78: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isExceptionStub:()Z
ifeq 81
79: aload 1
ldc "<ExceptionStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
80: goto 87
StackMap locals:
StackMap stack:
81: aload 16
invokevirtual sun.jvm.hotspot.code.CodeBlob.isSafepointStub:()Z
ifeq 84
82: aload 1
ldc "<SafepointStub>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
83: goto 87
84: StackMap locals:
StackMap stack:
aload 1
ldc "<Unknown code blob>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 16 85: goto 87
86: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.jvm.hotspot.tools.PStack.printUnknown:(Ljava/io/PrintStream;)V
end local 15 87: StackMap locals:
StackMap stack:
aload 13
ifnull 93
aload 13
arraylength
ifeq 93
88: iconst_0
istore 15
start local 15 89: goto 92
90: StackMap locals: int
StackMap stack:
aload 1
aload 13
iload 15
aaload
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
91: iinc 15 1
StackMap locals:
StackMap stack:
92: iload 15
aload 13
arraylength
if_icmplt 90
end local 15 end local 14 end local 13 93: 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 94: StackMap locals:
StackMap stack:
aload 9
ifnonnull 26
end local 10 end local 9 95: goto 98
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
96: astore 9
start local 9 97: aload 9
invokevirtual java.lang.Exception.printStackTrace:()V
end local 9 98: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
ifeq 102
99: 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 100: aload 9
ifnull 102
101: 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 102: 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 103: goto 108
104: 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 107
105: aload 1
ldc "remote configuration is not yet implemented"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
106: goto 108
107: StackMap locals:
StackMap stack:
aload 1
ldc "not yet implemented (debugger does not support CDebugger)!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
108: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 109 0 this Lsun/jvm/hotspot/tools/PStack;
0 109 1 out Ljava/io/PrintStream;
0 109 2 dbg Lsun/jvm/hotspot/debugger/Debugger;
4 109 3 cdbg Lsun/jvm/hotspot/debugger/cdbg/CDebugger;
6 103 4 concLocksPrinter Lsun/jvm/hotspot/runtime/ConcurrentLocksPrinter;
12 13 5 exp Ljava/lang/Exception;
14 103 5 l Ljava/util/List;
15 103 6 cdbgCanDemangle Z
16 103 7 itr Ljava/util/Iterator;
18 102 8 th Lsun/jvm/hotspot/debugger/ThreadProxy;
19 95 9 f Lsun/jvm/hotspot/debugger/cdbg/CFrame;
23 95 10 jthread Lsun/jvm/hotspot/runtime/JavaThread;
27 94 11 sym Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
28 94 12 pc Lsun/jvm/hotspot/debugger/Address;
31 38 13 name Ljava/lang/String;
35 38 14 diff J
40 93 13 names [Ljava/lang/String;
41 93 14 interp Lsun/jvm/hotspot/interpreter/Interpreter;
46 50 15 ic Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
48 49 16 desc Ljava/lang/String;
52 87 15 c Lsun/jvm/hotspot/code/CodeCache;
54 85 16 cb Lsun/jvm/hotspot/code/CodeBlob;
58 61 17 diff J
89 93 15 i I
97 98 9 exp Ljava/lang/Exception;
100 102 9 jthread Lsun/jvm/hotspot/runtime/JavaThread;
Exception table:
from to target type
9 10 11 Class java.lang.Exception
18 95 96 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=6, 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: iconst_0
istore 2
start local 2 4: goto 20
5: StackMap locals: sun.jvm.hotspot.runtime.Threads int
StackMap stack:
aload 1
iload 2
invokevirtual sun.jvm.hotspot.runtime.Threads.getJavaThreadAt:(I)Lsun/jvm/hotspot/runtime/JavaThread;
astore 3
start local 3 6: new java.util.ArrayList
dup
bipush 10
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 7: aload 3
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getLastJavaVFrameDbg:()Lsun/jvm/hotspot/runtime/JavaVFrame;
astore 5
start local 5 8: goto 11
9: StackMap locals: sun.jvm.hotspot.runtime.JavaThread java.util.List sun.jvm.hotspot.runtime.JavaVFrame
StackMap stack:
aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: aload 5
invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.javaSender:()Lsun/jvm/hotspot/runtime/JavaVFrame;
astore 5
StackMap locals:
StackMap stack:
11: aload 5
ifnonnull 9
end local 5 12: goto 15
StackMap locals: sun.jvm.hotspot.tools.PStack sun.jvm.hotspot.runtime.Threads int sun.jvm.hotspot.runtime.JavaThread java.util.List
StackMap stack: java.lang.Exception
13: astore 5
start local 5 14: aload 5
invokevirtual java.lang.Exception.printStackTrace:()V
end local 5 15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
anewarray sun.jvm.hotspot.runtime.JavaVFrame
astore 5
start local 5 16: 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
17: aload 0
getfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
aload 3
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
aload 3
invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 end local 3 19: iinc 2 1
StackMap locals:
StackMap stack:
20: iload 2
aload 1
invokevirtual sun.jvm.hotspot.runtime.Threads.getNumberOfThreads:()I
if_icmplt 5
end local 2 21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/jvm/hotspot/tools/PStack;
3 22 1 threads Lsun/jvm/hotspot/runtime/Threads;
4 21 2 i I
6 19 3 cur Lsun/jvm/hotspot/runtime/JavaThread;
7 19 4 tmp Ljava/util/List;
8 12 5 vf Lsun/jvm/hotspot/runtime/JavaVFrame;
14 15 5 exp Ljava/lang/Exception;
16 19 5 jvframes [Lsun/jvm/hotspot/runtime/JavaVFrame;
Exception table:
from to target type
7 12 13 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"