public class com.sun.tools.jdi.TargetVM implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.jdi.TargetVM
  super_class: java.lang.Object
{
  private java.util.Map<java.lang.String, com.sun.tools.jdi.Packet> waitingQueue;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/jdi/Packet;>;

  private volatile boolean shouldListen;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private java.util.List<com.sun.jdi.event.EventQueue> eventQueues;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/sun/jdi/event/EventQueue;>;

  private com.sun.tools.jdi.VirtualMachineImpl vm;
    descriptor: Lcom/sun/tools/jdi/VirtualMachineImpl;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jdi.connect.spi.Connection connection;
    descriptor: Lcom/sun/jdi/connect/spi/Connection;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread readerThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.jdi.TargetVM$EventController eventController;
    descriptor: Lcom/sun/tools/jdi/TargetVM$EventController;
    flags: (0x0002) ACC_PRIVATE

  private boolean eventsHeld;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final int OVERLOADED_QUEUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2000

  private static final int UNDERLOADED_QUEUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  void <init>(com.sun.tools.jdi.VirtualMachineImpl, com.sun.jdi.connect.spi.Connection);
    descriptor: (Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/jdi/connect/spi/Connection;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.VirtualMachineImpl vm
        start local 2 // com.sun.jdi.connect.spi.Connection connection
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            new java.util.HashMap
            dup
            bipush 32
            ldc 0.75
            invokespecial java.util.HashMap.<init>:(IF)V
            putfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
         2: .line 38
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 39
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            putfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
         4: .line 43
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
         5: .line 44
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         6: .line 54
            aload 0 /* this */
            aload 1 /* vm */
            putfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
         7: .line 55
            aload 0 /* this */
            aload 2 /* connection */
            putfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
         8: .line 56
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 1 /* vm */
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.threadGroupForJDI:()Ljava/lang/ThreadGroup;
         9: .line 57
            aload 0 /* this */
            ldc "JDI Target VM Interface"
            invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
        10: .line 56
            putfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
        11: .line 58
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        12: .line 59
            return
        end local 2 // com.sun.jdi.connect.spi.Connection connection
        end local 1 // com.sun.tools.jdi.VirtualMachineImpl vm
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/tools/jdi/TargetVM;
            0   13     1          vm  Lcom/sun/tools/jdi/VirtualMachineImpl;
            0   13     2  connection  Lcom/sun/jdi/connect/spi/Connection;
    MethodParameters:
            Name  Flags
      vm          
      connection  

  void start();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 62
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         1: .line 63
            return
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/jdi/TargetVM;

  private void dumpPacket(com.sun.tools.jdi.Packet, boolean);
    descriptor: (Lcom/sun/tools/jdi/Packet;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
        start local 2 // boolean sending
         0: .line 66
            iload 2 /* sending */
            ifeq 1
            ldc "Sending"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "Receiving"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* direction */
        start local 3 // java.lang.String direction
         3: .line 67
            iload 2 /* sending */
            ifeq 11
         4: .line 68
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            new java.lang.StringBuilder
            dup
            aload 3 /* direction */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Command. id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 69
            ldc ", length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 70
            ldc ", commandSet="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 71
            ldc ", command="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.cmd:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 72
            ldc ", flags="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 68
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        10: .line 73
            goto 20
        11: .line 74
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            sipush 128
            iand
            ifeq 13
        12: .line 75
            ldc "Reply"
            goto 14
      StackMap locals:
      StackMap stack:
        13: ldc "Event"
        14: .line 74
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* type */
        start local 4 // java.lang.String type
        15: .line 76
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            new java.lang.StringBuilder
            dup
            aload 3 /* direction */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 77
            ldc ", length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        17: .line 78
            ldc ", errorCode="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.errorCode:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        18: .line 79
            ldc ", flags="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 76
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        end local 4 // java.lang.String type
        20: .line 81
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            bipush 80
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 4 /* line */
        start local 4 // java.lang.StringBuffer line
        21: .line 82
            aload 4 /* line */
            ldc "0000: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 83
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: goto 42
        24: .line 84
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            iload 5 /* i */
            ifle 35
            iload 5 /* i */
            bipush 16
            irem
            ifne 35
        25: .line 85
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        26: .line 86
            aload 4 /* line */
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        27: .line 87
            aload 4 /* line */
            iload 5 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        28: .line 88
            aload 4 /* line */
            ldc ": "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        29: .line 89
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.length:()I
            istore 6 /* len */
        start local 6 // int len
        30: .line 90
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        31: goto 34
        32: .line 91
      StackMap locals: int int
      StackMap stack:
            aload 4 /* line */
            iconst_0
            bipush 48
            invokevirtual java.lang.StringBuffer.insert:(IC)Ljava/lang/StringBuffer;
            pop
        33: .line 90
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* j */
            bipush 6
            iload 6 /* len */
            isub
            if_icmplt 32
        end local 7 // int j
        end local 6 // int len
        35: .line 94
      StackMap locals:
      StackMap stack:
            sipush 255
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            iload 5 /* i */
            baload
            iand
            istore 6 /* val */
        start local 6 // int val
        36: .line 95
            iload 6 /* val */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 7 /* str */
        start local 7 // java.lang.String str
        37: .line 96
            aload 7 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 39
        38: .line 97
            aload 4 /* line */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        39: .line 99
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 4 /* line */
            aload 7 /* str */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        40: .line 100
            aload 4 /* line */
            bipush 32
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        end local 7 // java.lang.String str
        end local 6 // int val
        41: .line 83
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 5 /* i */
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            if_icmplt 24
        end local 5 // int i
        43: .line 102
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.length:()I
            bipush 6
            if_icmple 45
        44: .line 103
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        45: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.StringBuffer line
        end local 3 // java.lang.String direction
        end local 2 // boolean sending
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0       this  Lcom/sun/tools/jdi/TargetVM;
            0   46     1     packet  Lcom/sun/tools/jdi/Packet;
            0   46     2    sending  Z
            3   46     3  direction  Ljava/lang/String;
           15   20     4       type  Ljava/lang/String;
           21   46     4       line  Ljava/lang/StringBuffer;
           23   43     5          i  I
           30   35     6        len  I
           31   35     7          j  I
           36   41     6        val  I
           37   41     7        str  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      packet   
      sending  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 108
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_1
            iand
            ifeq 2
         1: .line 109
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM interface thread running"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 111
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // com.sun.tools.jdi.Packet p
         3: .line 114
            goto 45
         4: .line 116
      StackMap locals: com.sun.tools.jdi.Packet
      StackMap stack:
            iconst_0
            istore 4 /* done */
        start local 4 // boolean done
         5: .line 118
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.readPacket:()[B
            astore 5 /* b */
        start local 5 // byte[] b
         6: .line 119
            aload 5 /* b */
            arraylength
            ifne 8
         7: .line 120
            iconst_1
            istore 4 /* done */
         8: .line 122
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top int byte[]
      StackMap stack:
            aload 5 /* b */
            invokestatic com.sun.tools.jdi.Packet.fromByteArray:([B)Lcom/sun/tools/jdi/Packet;
            astore 1 /* p */
        end local 5 // byte[] b
         9: .line 123
            goto 12
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top int
      StackMap stack: java.io.IOException
        10: pop
        11: .line 124
            iconst_1
            istore 4 /* done */
        12: .line 127
      StackMap locals:
      StackMap stack:
            iload 4 /* done */
            ifeq 18
        13: .line 128
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
        14: .line 130
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
        15: .line 131
            goto 46
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 132
            goto 46
        18: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            getstatic com.sun.tools.jdi.VirtualMachineImpl.TRACE_RAW_RECEIVES:I
            iand
            ifeq 20
        19: .line 136
            aload 0 /* this */
            aload 1 /* p */
            iconst_0
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
        20: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.flags:S
            sipush 128
            iand
            ifne 23
        21: .line 141
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.jdi.TargetVM.handleVMCommand:(Lcom/sun/tools/jdi/Packet;)V
        22: .line 142
            goto 45
        23: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual com.sun.tools.jdi.VMState.notifyCommandComplete:(I)V
        24: .line 148
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 3 /* idString */
        start local 3 // java.lang.String idString
        25: .line 150
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        26: .line 151
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 3 /* idString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.jdi.Packet
            astore 2 /* p2 */
        start local 2 // com.sun.tools.jdi.Packet p2
        27: .line 153
            aload 2 /* p2 */
            ifnull 29
        28: .line 154
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 3 /* idString */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 150
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int java.util.Map
      StackMap stack:
            aload 5
            monitorexit
        30: goto 33
        end local 2 // com.sun.tools.jdi.Packet p2
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top java.lang.String int java.util.Map
      StackMap stack: java.lang.Throwable
        31: aload 5
            monitorexit
        32: athrow
        start local 2 // com.sun.tools.jdi.Packet p2
        33: .line 157
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int
      StackMap stack:
            aload 2 /* p2 */
            ifnonnull 36
        34: .line 161
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Recieved reply with no sender!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        35: .line 162
            goto 45
        36: .line 164
      StackMap locals:
      StackMap stack:
            aload 2 /* p2 */
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.errorCode:S
            putfield com.sun.tools.jdi.Packet.errorCode:S
        37: .line 165
            aload 2 /* p2 */
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.data:[B
            putfield com.sun.tools.jdi.Packet.data:[B
        38: .line 166
            aload 2 /* p2 */
            iconst_1
            putfield com.sun.tools.jdi.Packet.replied:Z
        39: .line 168
            aload 2 /* p2 */
            dup
            astore 5
            monitorenter
        40: .line 169
            aload 2 /* p2 */
            invokevirtual java.lang.Object.notify:()V
        41: .line 168
            aload 5
            monitorexit
        42: goto 45
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int com.sun.tools.jdi.Packet
      StackMap stack: java.lang.Throwable
        43: aload 5
            monitorexit
        44: athrow
        end local 4 // boolean done
        end local 3 // java.lang.String idString
        end local 2 // com.sun.tools.jdi.Packet p2
        45: .line 114
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
            ifne 4
        46: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.vmManager:Lcom/sun/tools/jdi/VirtualMachineManagerImpl;
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            invokevirtual com.sun.tools.jdi.VirtualMachineManagerImpl.disposeVirtualMachine:(Lcom/sun/jdi/VirtualMachine;)V
        47: .line 176
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            ifnull 49
        48: .line 177
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            invokevirtual com.sun.tools.jdi.TargetVM$EventController.release:()V
        49: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 4
            monitorenter
        50: .line 184
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        51: .line 185
            goto 53
        52: .line 186
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.List java.util.Iterator
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            invokevirtual com.sun.tools.jdi.EventQueueImpl.close:()V
        53: .line 185
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        end local 5 // java.util.Iterator iter
        54: .line 183
            aload 4
            monitorexit
        55: goto 58
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.List
      StackMap stack: java.lang.Throwable
        56: aload 4
            monitorexit
        57: athrow
        58: .line 192
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 4
            monitorenter
        59: .line 193
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        60: .line 194
            goto 68
        61: .line 195
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map java.util.Iterator
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.Packet
            astore 6 /* packet */
        start local 6 // com.sun.tools.jdi.Packet packet
        62: .line 196
            aload 6 /* packet */
            dup
            astore 7
            monitorenter
        63: .line 197
            aload 6 /* packet */
            invokevirtual java.lang.Object.notify:()V
        64: .line 196
            aload 7
            monitorexit
        65: goto 68
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map java.util.Iterator com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet
      StackMap stack: java.lang.Throwable
        66: aload 7
            monitorexit
        67: athrow
        end local 6 // com.sun.tools.jdi.Packet packet
        68: .line 194
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        69: .line 200
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        end local 5 // java.util.Iterator iter
        70: .line 192
            aload 4
            monitorexit
        71: goto 74
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map
      StackMap stack: java.lang.Throwable
        72: aload 4
            monitorexit
        73: athrow
        74: .line 203
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_1
            iand
            ifeq 76
        75: .line 204
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM interface thread exiting"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        76: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   77     0      this  Lcom/sun/tools/jdi/TargetVM;
            3   77     1         p  Lcom/sun/tools/jdi/Packet;
           27   31     2        p2  Lcom/sun/tools/jdi/Packet;
           33   45     2        p2  Lcom/sun/tools/jdi/Packet;
           25   45     3  idString  Ljava/lang/String;
            5   45     4      done  Z
            6    9     5         b  [B
           51   54     5      iter  Ljava/util/Iterator<Lcom/sun/jdi/event/EventQueue;>;
           60   70     5      iter  Ljava/util/Iterator<Lcom/sun/tools/jdi/Packet;>;
           62   68     6    packet  Lcom/sun/tools/jdi/Packet;
      Exception table:
        from    to  target  type
           5     9      10  Class java.io.IOException
          14    15      16  Class java.io.IOException
          26    30      31  any
          31    32      31  any
          40    42      43  any
          43    44      43  any
          50    55      56  any
          56    57      56  any
          63    65      66  any
          66    67      66  any
          59    71      72  any
          72    73      72  any

  protected void handleVMCommand(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet p
         0: .line 209
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            tableswitch { // 64 - 64
                   64: 1
              default: 3
          }
         1: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.jdi.TargetVM.handleEventCmdSet:(Lcom/sun/tools/jdi/Packet;)V
         2: .line 212
            goto 7
         3: .line 215
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring cmd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 216
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmd:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " from the VM"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 215
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 217
            return
         7: .line 219
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/jdi/TargetVM;
            0    8     1     p  Lcom/sun/tools/jdi/Packet;
    MethodParameters:
      Name  Flags
      p     

  protected void handleEventCmdSet(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet p
         0: .line 231
            new com.sun.tools.jdi.EventSetImpl
            dup
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 1 /* p */
            invokespecial com.sun.tools.jdi.EventSetImpl.<init>:(Lcom/sun/jdi/VirtualMachine;Lcom/sun/tools/jdi/Packet;)V
            astore 2 /* eventSet */
        start local 2 // com.sun.jdi.event.EventSet eventSet
         1: .line 233
            aload 2 /* eventSet */
            ifnull 3
         2: .line 234
            aload 0 /* this */
            aload 2 /* eventSet */
            invokevirtual com.sun.tools.jdi.TargetVM.queueEventSet:(Lcom/sun/jdi/event/EventSet;)V
         3: .line 236
      StackMap locals: com.sun.jdi.event.EventSet
      StackMap stack:
            return
        end local 2 // com.sun.jdi.event.EventSet eventSet
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/jdi/TargetVM;
            0    4     1         p  Lcom/sun/tools/jdi/Packet;
            1    4     2  eventSet  Lcom/sun/jdi/event/EventSet;
    MethodParameters:
      Name  Flags
      p     

  private com.sun.tools.jdi.TargetVM$EventController eventController();
    descriptor: ()Lcom/sun/tools/jdi/TargetVM$EventController;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 239
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            ifnonnull 2
         1: .line 240
            aload 0 /* this */
            new com.sun.tools.jdi.TargetVM$EventController
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.jdi.TargetVM$EventController.<init>:(Lcom/sun/tools/jdi/TargetVM;)V
            putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
         2: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            areturn
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/jdi/TargetVM;

  private synchronized void controlEventFlow(int);
    descriptor: (I)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // int maxQueueSize
         0: .line 246
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
            ifne 4
            iload 1 /* maxQueueSize */
            sipush 2000
            if_icmple 4
         1: .line 247
            aload 0 /* this */
            invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
            invokevirtual com.sun.tools.jdi.TargetVM$EventController.hold:()V
         2: .line 248
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         3: .line 249
            goto 7
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
            ifeq 7
            iload 1 /* maxQueueSize */
            bipush 100
            if_icmpge 7
         5: .line 250
            aload 0 /* this */
            invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
            invokevirtual com.sun.tools.jdi.TargetVM$EventController.release:()V
         6: .line 251
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         7: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int maxQueueSize
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/sun/tools/jdi/TargetVM;
            0    8     1  maxQueueSize  I
    MethodParameters:
              Name  Flags
      maxQueueSize  

  void notifyDequeueEventSet();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 256
            iconst_0
            istore 1 /* maxQueueSize */
        start local 1 // int maxQueueSize
         1: .line 257
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 2
            monitorenter
         2: .line 258
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 259
            goto 6
         4: .line 260
      StackMap locals: int java.util.List java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            astore 4 /* queue */
        start local 4 // com.sun.tools.jdi.EventQueueImpl queue
         5: .line 261
            iload 1 /* maxQueueSize */
            aload 4 /* queue */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
            invokestatic java.lang.Math.max:(II)I
            istore 1 /* maxQueueSize */
        end local 4 // com.sun.tools.jdi.EventQueueImpl queue
         6: .line 259
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // java.util.Iterator iter
         7: .line 257
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: com.sun.tools.jdi.TargetVM int java.util.List
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        12: .line 265
            return
        end local 1 // int maxQueueSize
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/sun/tools/jdi/TargetVM;
            1   13     1  maxQueueSize  I
            3    7     3          iter  Ljava/util/Iterator<Lcom/sun/jdi/event/EventQueue;>;
            5    6     4         queue  Lcom/sun/tools/jdi/EventQueueImpl;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any

  private void queueEventSet(com.sun.jdi.event.EventSet);
    descriptor: (Lcom/sun/jdi/event/EventSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.jdi.event.EventSet eventSet
         0: .line 268
            iconst_0
            istore 2 /* maxQueueSize */
        start local 2 // int maxQueueSize
         1: .line 270
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 3
            monitorenter
         2: .line 271
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         3: .line 272
            goto 7
         4: .line 273
      StackMap locals: int java.util.List java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            astore 5 /* queue */
        start local 5 // com.sun.tools.jdi.EventQueueImpl queue
         5: .line 274
            aload 5 /* queue */
            aload 1 /* eventSet */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.enqueue:(Lcom/sun/jdi/event/EventSet;)V
         6: .line 275
            iload 2 /* maxQueueSize */
            aload 5 /* queue */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* maxQueueSize */
        end local 5 // com.sun.tools.jdi.EventQueueImpl queue
         7: .line 272
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 4 // java.util.Iterator iter
         8: .line 270
            aload 3
            monitorexit
         9: goto 12
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.jdi.event.EventSet int java.util.List
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        13: .line 280
            return
        end local 2 // int maxQueueSize
        end local 1 // com.sun.jdi.event.EventSet eventSet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/sun/tools/jdi/TargetVM;
            0   14     1      eventSet  Lcom/sun/jdi/event/EventSet;
            1   14     2  maxQueueSize  I
            3    8     4          iter  Ljava/util/Iterator<Lcom/sun/jdi/event/EventQueue;>;
            5    7     5         queue  Lcom/sun/tools/jdi/EventQueueImpl;
      Exception table:
        from    to  target  type
           2     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      eventSet  

  void send(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
         0: .line 283
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 2 /* id */
        start local 2 // java.lang.String id
         1: .line 285
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         2: .line 286
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 2 /* id */
            aload 1 /* packet */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 285
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            getstatic com.sun.tools.jdi.VirtualMachineImpl.TRACE_RAW_SENDS:I
            iand
            ifeq 9
         8: .line 290
            aload 0 /* this */
            aload 1 /* packet */
            iconst_1
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
         9: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            aload 1 /* packet */
            invokevirtual com.sun.tools.jdi.Packet.toByteArray:()[B
            invokevirtual com.sun.jdi.connect.spi.Connection.writePacket:([B)V
        10: .line 295
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 3 /* e */
        start local 3 // java.io.IOException e
        12: .line 296
            new com.sun.jdi.VMDisconnectedException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial com.sun.jdi.VMDisconnectedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        13: .line 298
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String id
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/sun/tools/jdi/TargetVM;
            0   14     1  packet  Lcom/sun/tools/jdi/Packet;
            1   14     2      id  Ljava/lang/String;
           12   13     3       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
           9    10      11  Class java.io.IOException
    MethodParameters:
        Name  Flags
      packet  

  void waitForReply(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
         0: .line 301
            aload 1 /* packet */
            dup
            astore 2
            monitorenter
         1: .line 302
            goto 5
         2: .line 303
      StackMap locals: com.sun.tools.jdi.Packet
      StackMap stack:
            aload 1 /* packet */
            invokevirtual java.lang.Object.wait:()V
         3: goto 5
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         4: pop
         5: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.replied:Z
            ifne 6
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
            ifne 2
         6: .line 306
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.replied:Z
            ifne 8
         7: .line 307
            new com.sun.jdi.VMDisconnectedException
            dup
            invokespecial com.sun.jdi.VMDisconnectedException.<init>:()V
            athrow
         8: .line 301
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 310
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/tools/jdi/TargetVM;
            0   13     1  packet  Lcom/sun/tools/jdi/Packet;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
           1     9      10  any
          10    11      10  any
    MethodParameters:
        Name  Flags
      packet  

  void addEventQueue(com.sun.tools.jdi.EventQueueImpl);
    descriptor: (Lcom/sun/tools/jdi/EventQueueImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.EventQueueImpl queue
         0: .line 313
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_4
            iand
            ifeq 2
         1: .line 314
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "New event queue added"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            aload 1 /* queue */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 317
            return
        end local 1 // com.sun.tools.jdi.EventQueueImpl queue
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/tools/jdi/TargetVM;
            0    4     1  queue  Lcom/sun/tools/jdi/EventQueueImpl;
    MethodParameters:
       Name  Flags
      queue  

  void stopListening();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 320
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_4
            iand
            ifeq 2
         1: .line 321
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM i/f closing event queues"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 325
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
         4: .line 326
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 327
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/jdi/TargetVM;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
}
SourceFile: "TargetVM.java"
NestMembers:
  com.sun.tools.jdi.TargetVM$EventController
InnerClasses:
  private EventController = com.sun.tools.jdi.TargetVM$EventController of com.sun.tools.jdi.TargetVM