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 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            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 44
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 45
            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 49
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
         5: .line 50
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         6: .line 60
            aload 0 /* this */
            aload 1 /* vm */
            putfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
         7: .line 61
            aload 0 /* this */
            aload 2 /* connection */
            putfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
         8: .line 62
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 1 /* vm */
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.threadGroupForJDI:()Ljava/lang/ThreadGroup;
         9: .line 63
            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 62
            putfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
        11: .line 64
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        12: .line 65
            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 68
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         1: .line 69
            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 72
            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 73
            iload 2 /* sending */
            ifeq 11
         4: .line 74
            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 75
            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 76
            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 77
            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 78
            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 74
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        10: .line 79
            goto 20
        11: .line 80
      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 81
            ldc "Reply"
            goto 14
      StackMap locals:
      StackMap stack:
        13: ldc "Event"
        14: .line 80
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* type */
        start local 4 // java.lang.String type
        15: .line 82
            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 83
            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 84
            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 85
            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 82
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        end local 4 // java.lang.String type
        20: .line 87
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 80
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* line */
        start local 4 // java.lang.StringBuilder line
        21: .line 88
            aload 4 /* line */
            ldc "0000: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 89
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: goto 42
        24: .line 90
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 5 /* i */
            ifle 35
            iload 5 /* i */
            bipush 16
            irem
            ifne 35
        25: .line 91
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        26: .line 92
            aload 4 /* line */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        27: .line 93
            aload 4 /* line */
            iload 5 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 94
            aload 4 /* line */
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 95
            aload 4 /* line */
            invokevirtual java.lang.StringBuilder.length:()I
            istore 6 /* len */
        start local 6 // int len
        30: .line 96
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        31: goto 34
        32: .line 97
      StackMap locals: int int
      StackMap stack:
            aload 4 /* line */
            iconst_0
            bipush 48
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        33: .line 96
            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 100
      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 101
            iload 6 /* val */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 7 /* str */
        start local 7 // java.lang.String str
        37: .line 102
            aload 7 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 39
        38: .line 103
            aload 4 /* line */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        39: .line 105
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 4 /* line */
            aload 7 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        40: .line 106
            aload 4 /* line */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String str
        end local 6 // int val
        41: .line 89
            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 108
            aload 4 /* line */
            invokevirtual java.lang.StringBuilder.length:()I
            bipush 6
            if_icmple 45
        44: .line 109
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        45: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.StringBuilder 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/StringBuilder;
           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 114
            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 115
            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 117
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // com.sun.tools.jdi.Packet p
         3: .line 120
            goto 45
         4: .line 122
      StackMap locals: com.sun.tools.jdi.Packet
      StackMap stack:
            iconst_0
            istore 4 /* done */
        start local 4 // boolean done
         5: .line 124
            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 125
            aload 5 /* b */
            arraylength
            ifne 8
         7: .line 126
            iconst_1
            istore 4 /* done */
         8: .line 128
      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 129
            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 130
            iconst_1
            istore 4 /* done */
        12: .line 133
      StackMap locals:
      StackMap stack:
            iload 4 /* done */
            ifeq 18
        13: .line 134
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
        14: .line 136
            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 137
            goto 46
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 138
            goto 46
        18: .line 141
      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 142
            aload 0 /* this */
            aload 1 /* p */
            iconst_0
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
        20: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.flags:S
            sipush 128
            iand
            ifne 23
        21: .line 147
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.jdi.TargetVM.handleVMCommand:(Lcom/sun/tools/jdi/Packet;)V
        22: .line 148
            goto 45
        23: .line 153
      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 154
            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 156
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        26: .line 157
            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 159
            aload 2 /* p2 */
            ifnull 29
        28: .line 160
            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 156
      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 163
      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 167
            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 168
            goto 45
        36: .line 170
      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 171
            aload 2 /* p2 */
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.data:[B
            putfield com.sun.tools.jdi.Packet.data:[B
        38: .line 172
            aload 2 /* p2 */
            iconst_1
            putfield com.sun.tools.jdi.Packet.replied:Z
        39: .line 174
            aload 2 /* p2 */
            dup
            astore 5
            monitorenter
        40: .line 175
            aload 2 /* p2 */
            invokevirtual java.lang.Object.notify:()V
        41: .line 174
            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 120
      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 181
      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 182
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            ifnull 49
        48: .line 183
            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 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 4
            monitorenter
        50: .line 190
            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 191
            goto 53
        52: .line 192
      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 191
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        end local 5 // java.util.Iterator iter
        54: .line 189
            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 198
      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 199
            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 200
            goto 68
        61: .line 201
      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 202
            aload 6 /* packet */
            dup
            astore 7
            monitorenter
        63: .line 203
            aload 6 /* packet */
            invokevirtual java.lang.Object.notify:()V
        64: .line 202
            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 200
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        69: .line 206
            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 198
            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 209
      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 210
            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 212
      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 215
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            tableswitch { // 64 - 64
                   64: 1
              default: 3
          }
         1: .line 217
      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 218
            goto 7
         3: .line 221
      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 222
            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 221
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 223
            return
         7: .line 225
      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 237
            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 238
            aload 0 /* this */
            aload 2 /* eventSet */
            invokevirtual com.sun.tools.jdi.TargetVM.queueEventSet:(Lcom/sun/jdi/event/EventSet;)V
         2: .line 239
            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    3     0      this  Lcom/sun/tools/jdi/TargetVM;
            0    3     1         p  Lcom/sun/tools/jdi/Packet;
            1    3     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 242
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            ifnonnull 2
         1: .line 243
            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 245
      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 249
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
            ifne 4
            iload 1 /* maxQueueSize */
            sipush 2000
            if_icmple 4
         1: .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.hold:()V
         2: .line 251
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         3: .line 252
            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 253
            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 254
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         7: .line 256
      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 259
            iconst_0
            istore 1 /* maxQueueSize */
        start local 1 // int maxQueueSize
         1: .line 260
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 2
            monitorenter
         2: .line 261
            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 262
            goto 6
         4: .line 263
      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 264
            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 262
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // java.util.Iterator iter
         7: .line 260
            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 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        12: .line 268
            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 271
            iconst_0
            istore 2 /* maxQueueSize */
        start local 2 // int maxQueueSize
         1: .line 273
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 3
            monitorenter
         2: .line 274
            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 275
            goto 7
         4: .line 276
      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 277
            aload 5 /* queue */
            aload 1 /* eventSet */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.enqueue:(Lcom/sun/jdi/event/EventSet;)V
         6: .line 278
            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 275
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 4 // java.util.Iterator iter
         8: .line 273
            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 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        13: .line 283
            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 286
            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 288
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         2: .line 289
            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 288
            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 292
      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 293
            aload 0 /* this */
            aload 1 /* packet */
            iconst_1
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
         9: .line 297
      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 298
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 3 /* e */
        start local 3 // java.io.IOException e
        12: .line 299
            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 301
      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 304
            aload 1 /* packet */
            dup
            astore 2
            monitorenter
         1: .line 305
            goto 5
         2: .line 306
      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 305
      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 309
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.replied:Z
            ifne 8
         7: .line 310
            new com.sun.jdi.VMDisconnectedException
            dup
            invokespecial com.sun.jdi.VMDisconnectedException.<init>:()V
            athrow
         8: .line 304
      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 313
      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 316
            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 317
            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 319
      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 320
            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 323
            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 324
            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 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 328
            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 329
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 330
      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