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<sun.jvm.hotspot.debugger.ThreadProxy, sun.jvm.hotspot.runtime.JavaVFrame[]> jframeCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lsun/jvm/hotspot/debugger/ThreadProxy;[Lsun/jvm/hotspot/runtime/JavaVFrame;>;

  private java.util.Map<sun.jvm.hotspot.debugger.ThreadProxy, sun.jvm.hotspot.runtime.JavaThread> proxyToThread;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lsun/jvm/hotspot/debugger/ThreadProxy;Lsun/jvm/hotspot/runtime/JavaThread;>;

  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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // boolean v
        start local 2 // boolean concurrentLocks
         0: .line 39
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 40
            aload 0 /* this */
            iload 1 /* v */
            putfield sun.jvm.hotspot.tools.PStack.verbose:Z
         2: .line 41
            aload 0 /* this */
            iload 2 /* concurrentLocks */
            putfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
         3: .line 42
            return
        end local 2 // boolean concurrentLocks
        end local 1 // boolean v
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
         0: .line 45
            aload 0 /* this */
            iconst_1
            iconst_1
            invokespecial sun.jvm.hotspot.tools.PStack.<init>:(ZZ)V
         1: .line 46
            return
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
         0: .line 49
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 50
            return
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
         0: .line 53
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.jvm.hotspot.tools.PStack.run:(Ljava/io/PrintStream;)V
         1: .line 54
            return
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // java.io.PrintStream out
         0: .line 57
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.tools.PStack.getAgent:()Lsun/jvm/hotspot/HotSpotAgent;
            invokevirtual sun.jvm.hotspot.HotSpotAgent.getDebugger:()Lsun/jvm/hotspot/debugger/Debugger;
            astore 2 /* dbg */
        start local 2 // sun.jvm.hotspot.debugger.Debugger dbg
         1: .line 58
            aload 0 /* this */
            aload 1 /* out */
            aload 2 /* dbg */
            invokevirtual sun.jvm.hotspot.tools.PStack.run:(Ljava/io/PrintStream;Lsun/jvm/hotspot/debugger/Debugger;)V
         2: .line 59
            return
        end local 2 // sun.jvm.hotspot.debugger.Debugger dbg
        end local 1 // java.io.PrintStream out
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // java.io.PrintStream out
        start local 2 // sun.jvm.hotspot.debugger.Debugger dbg
         0: .line 62
            invokestatic sun.jvm.hotspot.utilities.PlatformInfo.getOS:()Ljava/lang/String;
            ldc "darwin"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 63
            aload 1 /* out */
            ldc "Not available on Mac OS X"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 64
            return
         3: .line 67
      StackMap locals:
      StackMap stack:
            aload 2 /* dbg */
            invokeinterface sun.jvm.hotspot.debugger.Debugger.getCDebugger:()Lsun/jvm/hotspot/debugger/cdbg/CDebugger;
            astore 3 /* cdbg */
        start local 3 // sun.jvm.hotspot.debugger.cdbg.CDebugger cdbg
         4: .line 68
            aload 3 /* cdbg */
            ifnull 104
         5: .line 69
            aconst_null
            astore 4 /* concLocksPrinter */
        start local 4 // sun.jvm.hotspot.runtime.ConcurrentLocksPrinter concLocksPrinter
         6: .line 71
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.tools.PStack.initJFrameCache:()V
         7: .line 72
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
            ifeq 9
         8: .line 73
            new sun.jvm.hotspot.runtime.ConcurrentLocksPrinter
            dup
            invokespecial sun.jvm.hotspot.runtime.ConcurrentLocksPrinter.<init>:()V
            astore 4 /* concLocksPrinter */
         9: .line 77
      StackMap locals: sun.jvm.hotspot.debugger.cdbg.CDebugger sun.jvm.hotspot.runtime.ConcurrentLocksPrinter
      StackMap stack:
            aload 1 /* out */
            invokestatic sun.jvm.hotspot.runtime.DeadlockDetector.print:(Ljava/io/PrintStream;)V
        10: .line 78
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: astore 5 /* exp */
        start local 5 // java.lang.Exception exp
        12: .line 79
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            ldc "can't print deadlock information: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* exp */
            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 // java.lang.Exception exp
        13: .line 82
      StackMap locals:
      StackMap stack:
            aload 3 /* cdbg */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.getThreadList:()Ljava/util/List;
            astore 5 /* l */
        start local 5 // java.util.List l
        14: .line 83
            aload 3 /* cdbg */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.canDemangle:()Z
            istore 6 /* cdbgCanDemangle */
        start local 6 // boolean cdbgCanDemangle
        15: .line 84
            aload 5 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* itr */
        start local 7 // java.util.Iterator itr
        16: goto 102
        17: .line 85
      StackMap locals: java.util.List int java.util.Iterator
      StackMap stack:
            aload 7 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.debugger.ThreadProxy
            astore 8 /* th */
        start local 8 // sun.jvm.hotspot.debugger.ThreadProxy th
        18: .line 87
            aload 3 /* cdbg */
            aload 8 /* th */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.topFrameForThread:(Lsun/jvm/hotspot/debugger/ThreadProxy;)Lsun/jvm/hotspot/debugger/cdbg/CFrame;
            astore 9 /* f */
        start local 9 // sun.jvm.hotspot.debugger.cdbg.CFrame f
        19: .line 88
            aload 1 /* out */
            ldc "----------------- "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        20: .line 89
            aload 1 /* out */
            aload 8 /* th */
            invokevirtual java.io.PrintStream.print:(Ljava/lang/Object;)V
        21: .line 90
            aload 1 /* out */
            ldc " -----------------"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 91
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
            aload 8 /* th */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.runtime.JavaThread
            astore 10 /* jthread */
        start local 10 // sun.jvm.hotspot.runtime.JavaThread jthread
        23: .line 92
            aload 10 /* jthread */
            ifnull 94
        24: .line 93
            aload 10 /* jthread */
            aload 1 /* out */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.printThreadInfoOn:(Ljava/io/PrintStream;)V
        25: .line 95
            goto 94
        26: .line 96
      StackMap locals: sun.jvm.hotspot.debugger.ThreadProxy sun.jvm.hotspot.debugger.cdbg.CFrame sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            aload 9 /* f */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.closestSymbolToPC:()Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
            astore 11 /* sym */
        start local 11 // sun.jvm.hotspot.debugger.cdbg.ClosestSymbol sym
        27: .line 97
            aload 9 /* f */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.pc:()Lsun/jvm/hotspot/debugger/Address;
            astore 12 /* pc */
        start local 12 // sun.jvm.hotspot.debugger.Address pc
        28: .line 98
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 12 /* pc */
            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: .line 99
            aload 11 /* sym */
            ifnull 39
        30: .line 100
            aload 11 /* sym */
            invokevirtual sun.jvm.hotspot.debugger.cdbg.ClosestSymbol.getName:()Ljava/lang/String;
            astore 13 /* name */
        start local 13 // java.lang.String name
        31: .line 101
            iload 6 /* cdbgCanDemangle */
            ifeq 33
        32: .line 102
            aload 3 /* cdbg */
            aload 13 /* name */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CDebugger.demangle:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* name */
        33: .line 104
      StackMap locals: sun.jvm.hotspot.debugger.cdbg.ClosestSymbol sun.jvm.hotspot.debugger.Address java.lang.String
      StackMap stack:
            aload 1 /* out */
            aload 13 /* name */
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        34: .line 105
            aload 11 /* sym */
            invokevirtual sun.jvm.hotspot.debugger.cdbg.ClosestSymbol.getOffset:()J
            lstore 14 /* diff */
        start local 14 // long diff
        35: .line 106
            lload 14 /* diff */
            lconst_0
            lcmp
            ifeq 37
        36: .line 107
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            ldc " + 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 14 /* diff */
            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: .line 109
      StackMap locals: long
      StackMap stack:
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
        end local 14 // long diff
        end local 13 // java.lang.String name
        38: .line 110
            goto 93
        39: .line 112
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* names */
        start local 13 // java.lang.String[] names
        40: .line 114
            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 /* interp */
        start local 14 // sun.jvm.hotspot.interpreter.Interpreter interp
        41: .line 115
            aload 14 /* interp */
            aload 12 /* pc */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 51
        42: .line 116
            aload 0 /* this */
            aload 8 /* th */
            aload 9 /* f */
            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 /* names */
        43: .line 118
            aload 13 /* names */
            ifnull 44
            aload 13 /* names */
            arraylength
            ifne 87
        44: .line 119
      StackMap locals: java.lang.String[] sun.jvm.hotspot.interpreter.Interpreter
      StackMap stack:
            aload 1 /* out */
            ldc "<interpreter> "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        45: .line 120
            aload 14 /* interp */
            aload 12 /* pc */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.getCodeletContaining:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
            astore 15 /* ic */
        start local 15 // sun.jvm.hotspot.interpreter.InterpreterCodelet ic
        46: .line 121
            aload 15 /* ic */
            ifnull 49
        47: .line 122
            aload 15 /* ic */
            invokevirtual sun.jvm.hotspot.interpreter.InterpreterCodelet.getDescription:()Ljava/lang/String;
            astore 16 /* desc */
        start local 16 // java.lang.String desc
        48: .line 123
            aload 16 /* desc */
            ifnull 49
            aload 1 /* out */
            aload 16 /* desc */
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        end local 16 // java.lang.String desc
        49: .line 125
      StackMap locals: sun.jvm.hotspot.interpreter.InterpreterCodelet
      StackMap stack:
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
        end local 15 // sun.jvm.hotspot.interpreter.InterpreterCodelet ic
        50: .line 127
            goto 87
        51: .line 129
      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 /* c */
        start local 15 // sun.jvm.hotspot.code.CodeCache c
        52: .line 130
            aload 15 /* c */
            aload 12 /* pc */
            invokevirtual sun.jvm.hotspot.code.CodeCache.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 86
        53: .line 131
            aload 15 /* c */
            aload 12 /* pc */
            invokevirtual sun.jvm.hotspot.code.CodeCache.findBlobUnsafe:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/code/CodeBlob;
            astore 16 /* cb */
        start local 16 // sun.jvm.hotspot.code.CodeBlob cb
        54: .line 132
            aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isNMethod:()Z
            ifeq 66
        55: .line 133
            aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isNativeMethod:()Z
            ifeq 62
        56: .line 134
            aload 1 /* out */
            aload 16 /* cb */
            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: .line 135
            aload 12 /* pc */
            aload 16 /* cb */
            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 /* diff */
        start local 17 // long diff
        58: .line 136
            lload 17 /* diff */
            lconst_0
            lcmp
            ifeq 60
        59: .line 137
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            ldc " + 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 17 /* diff */
            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: .line 139
      StackMap locals: sun.jvm.hotspot.code.CodeCache sun.jvm.hotspot.code.CodeBlob long
      StackMap stack:
            aload 1 /* out */
            ldc " (Native method)"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 17 // long diff
        61: .line 140
            goto 87
        62: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* th */
            aload 9 /* f */
            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 /* names */
        63: .line 143
            aload 13 /* names */
            ifnull 64
            aload 13 /* names */
            arraylength
            ifne 87
        64: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            ldc "<Unknown compiled code>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        65: .line 147
            goto 87
      StackMap locals:
      StackMap stack:
        66: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isBufferBlob:()Z
            ifeq 69
        67: .line 148
            aload 1 /* out */
            ldc "<StubRoutines>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        68: .line 149
            goto 87
      StackMap locals:
      StackMap stack:
        69: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isRuntimeStub:()Z
            ifeq 72
        70: .line 150
            aload 1 /* out */
            ldc "<RuntimeStub>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        71: .line 151
            goto 87
      StackMap locals:
      StackMap stack:
        72: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isDeoptimizationStub:()Z
            ifeq 75
        73: .line 152
            aload 1 /* out */
            ldc "<DeoptimizationStub>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        74: .line 153
            goto 87
      StackMap locals:
      StackMap stack:
        75: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isUncommonTrapStub:()Z
            ifeq 78
        76: .line 154
            aload 1 /* out */
            ldc "<UncommonTrap>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        77: .line 155
            goto 87
      StackMap locals:
      StackMap stack:
        78: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isExceptionStub:()Z
            ifeq 81
        79: .line 156
            aload 1 /* out */
            ldc "<ExceptionStub>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        80: .line 157
            goto 87
      StackMap locals:
      StackMap stack:
        81: aload 16 /* cb */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isSafepointStub:()Z
            ifeq 84
        82: .line 158
            aload 1 /* out */
            ldc "<SafepointStub>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        83: .line 159
            goto 87
        84: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            ldc "<Unknown code blob>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 16 // sun.jvm.hotspot.code.CodeBlob cb
        85: .line 162
            goto 87
        86: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.jvm.hotspot.tools.PStack.printUnknown:(Ljava/io/PrintStream;)V
        end local 15 // sun.jvm.hotspot.code.CodeCache c
        87: .line 167
      StackMap locals:
      StackMap stack:
            aload 13 /* names */
            ifnull 93
            aload 13 /* names */
            arraylength
            ifeq 93
        88: .line 169
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        89: goto 92
        90: .line 170
      StackMap locals: int
      StackMap stack:
            aload 1 /* out */
            aload 13 /* names */
            iload 15 /* i */
            aaload
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        91: .line 169
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        92: iload 15 /* i */
            aload 13 /* names */
            arraylength
            if_icmplt 90
        end local 15 // int i
        end local 14 // sun.jvm.hotspot.interpreter.Interpreter interp
        end local 13 // java.lang.String[] names
        93: .line 174
      StackMap locals:
      StackMap stack:
            aload 9 /* f */
            aload 8 /* th */
            invokeinterface sun.jvm.hotspot.debugger.cdbg.CFrame.sender:(Lsun/jvm/hotspot/debugger/ThreadProxy;)Lsun/jvm/hotspot/debugger/cdbg/CFrame;
            astore 9 /* f */
        end local 12 // sun.jvm.hotspot.debugger.Address pc
        end local 11 // sun.jvm.hotspot.debugger.cdbg.ClosestSymbol sym
        94: .line 95
      StackMap locals:
      StackMap stack:
            aload 9 /* f */
            ifnonnull 26
        end local 10 // sun.jvm.hotspot.runtime.JavaThread jthread
        end local 9 // sun.jvm.hotspot.debugger.cdbg.CFrame f
        95: .line 176
            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 /* exp */
        start local 9 // java.lang.Exception exp
        97: .line 177
            aload 9 /* exp */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 9 // java.lang.Exception exp
        98: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.concurrentLocks:Z
            ifeq 102
        99: .line 181
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
            aload 8 /* th */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.runtime.JavaThread
            astore 9 /* jthread */
        start local 9 // sun.jvm.hotspot.runtime.JavaThread jthread
       100: .line 182
            aload 9 /* jthread */
            ifnull 102
       101: .line 183
            aload 4 /* concLocksPrinter */
            aload 9 /* jthread */
            aload 1 /* out */
            invokevirtual sun.jvm.hotspot.runtime.ConcurrentLocksPrinter.print:(Lsun/jvm/hotspot/runtime/JavaThread;Ljava/io/PrintStream;)V
        end local 9 // sun.jvm.hotspot.runtime.JavaThread jthread
        end local 8 // sun.jvm.hotspot.debugger.ThreadProxy th
       102: .line 84
      StackMap locals:
      StackMap stack:
            aload 7 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        end local 7 // java.util.Iterator itr
        end local 6 // boolean cdbgCanDemangle
        end local 5 // java.util.List l
        end local 4 // sun.jvm.hotspot.runtime.ConcurrentLocksPrinter concLocksPrinter
       103: .line 187
            goto 108
       104: .line 188
      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 /* this */
            invokevirtual sun.jvm.hotspot.tools.PStack.getDebugeeType:()I
            iconst_2
            if_icmpne 107
       105: .line 189
            aload 1 /* out */
            ldc "remote configuration is not yet implemented"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       106: .line 190
            goto 108
       107: .line 191
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            ldc "not yet implemented (debugger does not support CDebugger)!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       108: .line 194
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.jvm.hotspot.debugger.cdbg.CDebugger cdbg
        end local 2 // sun.jvm.hotspot.debugger.Debugger dbg
        end local 1 // java.io.PrintStream out
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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<Lsun/jvm/hotspot/debugger/ThreadProxy;>;
           15  103     6   cdbgCanDemangle  Z
           16  103     7               itr  Ljava/util/Iterator<Lsun/jvm/hotspot/debugger/ThreadProxy;>;
           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 // java.lang.String[] args
         0: .line 197
            new sun.jvm.hotspot.tools.PStack
            dup
            invokespecial sun.jvm.hotspot.tools.PStack.<init>:()V
            astore 1 /* t */
        start local 1 // sun.jvm.hotspot.tools.PStack t
         1: .line 198
            aload 1 /* t */
            aload 0 /* args */
            invokevirtual sun.jvm.hotspot.tools.PStack.execute:([Ljava/lang/String;)V
         2: .line 199
            return
        end local 1 // sun.jvm.hotspot.tools.PStack t
        end local 0 // java.lang.String[] args
      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 // sun.jvm.hotspot.tools.PStack this
         0: .line 210
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
         1: .line 211
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
         2: .line 212
            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 /* threads */
        start local 1 // sun.jvm.hotspot.runtime.Threads threads
         3: .line 213
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 20
         5: .line 214
      StackMap locals: sun.jvm.hotspot.runtime.Threads int
      StackMap stack:
            aload 1 /* threads */
            iload 2 /* i */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getJavaThreadAt:(I)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 3 /* cur */
        start local 3 // sun.jvm.hotspot.runtime.JavaThread cur
         6: .line 215
            new java.util.ArrayList
            dup
            bipush 10
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* tmp */
        start local 4 // java.util.List tmp
         7: .line 217
            aload 3 /* cur */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getLastJavaVFrameDbg:()Lsun/jvm/hotspot/runtime/JavaVFrame;
            astore 5 /* vf */
        start local 5 // sun.jvm.hotspot.runtime.JavaVFrame vf
         8: goto 11
         9: .line 218
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread java.util.List sun.jvm.hotspot.runtime.JavaVFrame
      StackMap stack:
            aload 4 /* tmp */
            aload 5 /* vf */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 217
            aload 5 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.javaSender:()Lsun/jvm/hotspot/runtime/JavaVFrame;
            astore 5 /* vf */
      StackMap locals:
      StackMap stack:
        11: aload 5 /* vf */
            ifnonnull 9
        end local 5 // sun.jvm.hotspot.runtime.JavaVFrame vf
        12: .line 220
            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 /* exp */
        start local 5 // java.lang.Exception exp
        14: .line 223
            aload 5 /* exp */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 5 // java.lang.Exception exp
        15: .line 225
      StackMap locals:
      StackMap stack:
            aload 4 /* tmp */
            invokeinterface java.util.List.size:()I
            anewarray sun.jvm.hotspot.runtime.JavaVFrame
            astore 5 /* jvframes */
        start local 5 // sun.jvm.hotspot.runtime.JavaVFrame[] jvframes
        16: .line 226
            aload 4 /* tmp */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            iconst_0
            aload 5 /* jvframes */
            iconst_0
            aload 5 /* jvframes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 227
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
            aload 3 /* cur */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
            aload 5 /* jvframes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 228
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.proxyToThread:Ljava/util/Map;
            aload 3 /* cur */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadProxy:()Lsun/jvm/hotspot/debugger/ThreadProxy;
            aload 3 /* cur */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // sun.jvm.hotspot.runtime.JavaVFrame[] jvframes
        end local 4 // java.util.List tmp
        end local 3 // sun.jvm.hotspot.runtime.JavaThread cur
        19: .line 213
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 2 /* i */
            aload 1 /* threads */
            invokevirtual sun.jvm.hotspot.runtime.Threads.getNumberOfThreads:()I
            if_icmplt 5
        end local 2 // int i
        21: .line 230
            return
        end local 1 // sun.jvm.hotspot.runtime.Threads threads
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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<Lsun/jvm/hotspot/runtime/JavaVFrame;>;
            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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // java.io.PrintStream out
         0: .line 233
            aload 1 /* out */
            ldc "\t????????"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 234
            return
        end local 1 // java.io.PrintStream out
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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 // sun.jvm.hotspot.tools.PStack this
        start local 1 // sun.jvm.hotspot.debugger.ThreadProxy th
        start local 2 // sun.jvm.hotspot.debugger.Address fp
         0: .line 237
            aload 2 /* fp */
            ifnonnull 2
         1: .line 238
            aconst_null
            areturn
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.PStack.jframeCache:Ljava/util/Map;
            aload 1 /* th */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.runtime.JavaVFrame[]
            astore 3 /* jvframes */
        start local 3 // sun.jvm.hotspot.runtime.JavaVFrame[] jvframes
         3: .line 241
            aload 3 /* jvframes */
            ifnonnull 4
            aconst_null
            areturn
         4: .line 242
      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 /* names */
        start local 4 // java.util.List names
         5: .line 243
            iconst_0
            istore 5 /* fCount */
        start local 5 // int fCount
         6: goto 32
         7: .line 244
      StackMap locals: java.util.List int
      StackMap stack:
            aload 3 /* jvframes */
            iload 5 /* fCount */
            aaload
            astore 6 /* vf */
        start local 6 // sun.jvm.hotspot.runtime.JavaVFrame vf
         8: .line 245
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getFrame:()Lsun/jvm/hotspot/runtime/Frame;
            astore 7 /* f */
        start local 7 // sun.jvm.hotspot.runtime.Frame f
         9: .line 246
            aload 2 /* fp */
            aload 7 /* f */
            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: .line 247
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 8 /* sb */
        start local 8 // java.lang.StringBuffer sb
        11: .line 248
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getMethod:()Lsun/jvm/hotspot/oops/Method;
            astore 9 /* method */
        start local 9 // sun.jvm.hotspot.oops.Method method
        12: .line 250
            aload 8 /* sb */
            ldc "* "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 251
            aload 8 /* sb */
            aload 9 /* method */
            invokevirtual sun.jvm.hotspot.oops.Method.externalNameAndSignature:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        14: .line 252
            aload 8 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " bci:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* vf */
            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: .line 253
            aload 9 /* method */
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.getBCI:()I
            invokevirtual sun.jvm.hotspot.oops.Method.getLineNumberFromBCI:(I)I
            istore 10 /* lineNumber */
        start local 10 // int lineNumber
        16: .line 254
            iload 10 /* lineNumber */
            iconst_m1
            if_icmpeq 18
        17: .line 255
            aload 8 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " line:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* lineNumber */
            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: .line 258
      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 /* this */
            getfield sun.jvm.hotspot.tools.PStack.verbose:Z
            ifeq 20
        19: .line 259
            aload 8 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " Method*:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* method */
            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: .line 262
      StackMap locals:
      StackMap stack:
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isCompiledFrame:()Z
            ifeq 25
        21: .line 263
            aload 8 /* sb */
            ldc " (Compiled frame"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 264
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isDeoptimized:()Z
            ifeq 27
        23: .line 265
            aload 8 /* sb */
            ldc " [deoptimized]"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        24: .line 267
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.isInterpretedFrame:()Z
            ifeq 27
        26: .line 268
            aload 8 /* sb */
            ldc " (Interpreted frame"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 270
      StackMap locals:
      StackMap stack:
            aload 6 /* vf */
            invokevirtual sun.jvm.hotspot.runtime.JavaVFrame.mayBeImpreciseDbg:()Z
            ifeq 29
        28: .line 271
            aload 8 /* sb */
            ldc "; information may be imprecise"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        29: .line 273
      StackMap locals:
      StackMap stack:
            aload 8 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        30: .line 274
            aload 4 /* names */
            aload 8 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // int lineNumber
        end local 9 // sun.jvm.hotspot.oops.Method method
        end local 8 // java.lang.StringBuffer sb
        end local 7 // sun.jvm.hotspot.runtime.Frame f
        end local 6 // sun.jvm.hotspot.runtime.JavaVFrame vf
        31: .line 243
      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 /* fCount */ 1
      StackMap locals:
      StackMap stack:
        32: iload 5 /* fCount */
            aload 3 /* jvframes */
            arraylength
            if_icmplt 7
        end local 5 // int fCount
        33: .line 277
            aload 4 /* names */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 5 /* res */
        start local 5 // java.lang.String[] res
        34: .line 278
            aload 4 /* names */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            iconst_0
            aload 5 /* res */
            iconst_0
            aload 5 /* res */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        35: .line 279
            aload 5 /* res */
            areturn
        end local 5 // java.lang.String[] res
        end local 4 // java.util.List names
        end local 3 // sun.jvm.hotspot.runtime.JavaVFrame[] jvframes
        end local 2 // sun.jvm.hotspot.debugger.Address fp
        end local 1 // sun.jvm.hotspot.debugger.ThreadProxy th
        end local 0 // sun.jvm.hotspot.tools.PStack this
      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<Ljava/lang/String;>;
            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"