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 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
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: aload 0
iconst_1
putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
3: aload 0
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: aload 0
aconst_null
putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
5: aload 0
iconst_0
putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
6: aload 0
aload 1
putfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
7: aload 0
aload 2
putfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
8: aload 0
new java.lang.Thread
dup
aload 1
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.threadGroupForJDI:()Ljava/lang/ThreadGroup;
9: aload 0
ldc "JDI Target VM Interface"
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
10: putfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
11: aload 0
getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
12: return
end local 2 end local 1 end local 0 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 0: aload 0
getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
1: return
end local 0 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 start local 1 start local 2 0: iload 2
ifeq 1
ldc "Sending"
goto 2
StackMap locals:
StackMap stack:
1: ldc "Receiving"
StackMap locals:
StackMap stack: java.lang.String
2: astore 3
start local 3 3: iload 2
ifeq 11
4: aload 0
getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
new java.lang.StringBuilder
dup
aload 3
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
getfield com.sun.tools.jdi.Packet.id:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
5: ldc ", length="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.Packet.data:[B
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: ldc ", commandSet="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.Packet.cmdSet:S
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: ldc ", command="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.Packet.cmd:S
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: ldc ", flags="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
10: goto 20
11: StackMap locals: java.lang.String
StackMap stack:
aload 1
getfield com.sun.tools.jdi.Packet.flags:S
sipush 128
iand
ifeq 13
12: ldc "Reply"
goto 14
StackMap locals:
StackMap stack:
13: ldc "Event"
14: StackMap locals:
StackMap stack: java.lang.String
astore 4
start local 4 15: aload 0
getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
new java.lang.StringBuilder
dup
aload 3
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
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
getfield com.sun.tools.jdi.Packet.id:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
16: ldc ", length="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.Packet.data:[B
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
17: ldc ", errorCode="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.Packet.errorCode:S
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
18: ldc ", flags="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
end local 4 20: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
bipush 80
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 21: aload 4
ldc "0000: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: iconst_0
istore 5
start local 5 23: goto 42
24: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 5
ifle 35
iload 5
bipush 16
irem
ifne 35
25: aload 0
getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
26: aload 4
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
27: aload 4
iload 5
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 4
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
29: aload 4
invokevirtual java.lang.StringBuilder.length:()I
istore 6
start local 6 30: iconst_0
istore 7
start local 7 31: goto 34
32: StackMap locals: int int
StackMap stack:
aload 4
iconst_0
bipush 48
invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
pop
33: iinc 7 1
StackMap locals:
StackMap stack:
34: iload 7
bipush 6
iload 6
isub
if_icmplt 32
end local 7 end local 6 35: StackMap locals:
StackMap stack:
sipush 255
aload 1
getfield com.sun.tools.jdi.Packet.data:[B
iload 5
baload
iand
istore 6
start local 6 36: iload 6
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 7
start local 7 37: aload 7
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 39
38: aload 4
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
39: StackMap locals: int java.lang.String
StackMap stack:
aload 4
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
40: aload 4
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 7 end local 6 41: iinc 5 1
StackMap locals:
StackMap stack:
42: iload 5
aload 1
getfield com.sun.tools.jdi.Packet.data:[B
arraylength
if_icmplt 24
end local 5 43: aload 4
invokevirtual java.lang.StringBuilder.length:()I
bipush 6
if_icmple 45
44: aload 0
getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
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: aload 0
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: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 3: goto 45
4: StackMap locals: com.sun.tools.jdi.Packet
StackMap stack:
iconst_0
istore 4
start local 4 5: aload 0
getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
invokevirtual com.sun.jdi.connect.spi.Connection.readPacket:()[B
astore 5
start local 5 6: aload 5
arraylength
ifne 8
7: iconst_1
istore 4
8: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top int byte[]
StackMap stack:
aload 5
invokestatic com.sun.tools.jdi.Packet.fromByteArray:([B)Lcom/sun/tools/jdi/Packet;
astore 1
end local 5 9: 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: iconst_1
istore 4
12: StackMap locals:
StackMap stack:
iload 4
ifeq 18
13: aload 0
iconst_0
putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
14: aload 0
getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
15: goto 46
StackMap locals:
StackMap stack: java.io.IOException
16: pop
17: goto 46
18: StackMap locals:
StackMap stack:
aload 0
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: aload 0
aload 1
iconst_0
invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
20: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.Packet.flags:S
sipush 128
iand
ifne 23
21: aload 0
aload 1
invokevirtual com.sun.tools.jdi.TargetVM.handleVMCommand:(Lcom/sun/tools/jdi/Packet;)V
22: goto 45
23: StackMap locals:
StackMap stack:
aload 0
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
getfield com.sun.tools.jdi.Packet.id:I
invokevirtual com.sun.tools.jdi.VMState.notifyCommandComplete:(I)V
24: aload 1
getfield com.sun.tools.jdi.Packet.id:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
astore 3
start local 3 25: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
dup
astore 5
monitorenter
26: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.tools.jdi.Packet
astore 2
start local 2 27: aload 2
ifnull 29
28: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
29: 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 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 33: 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
ifnonnull 36
34: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Recieved reply with no sender!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: goto 45
36: StackMap locals:
StackMap stack:
aload 2
aload 1
getfield com.sun.tools.jdi.Packet.errorCode:S
putfield com.sun.tools.jdi.Packet.errorCode:S
37: aload 2
aload 1
getfield com.sun.tools.jdi.Packet.data:[B
putfield com.sun.tools.jdi.Packet.data:[B
38: aload 2
iconst_1
putfield com.sun.tools.jdi.Packet.replied:Z
39: aload 2
dup
astore 5
monitorenter
40: aload 2
invokevirtual java.lang.Object.notify:()V
41: 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 end local 3 end local 2 45: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
ifne 4
46: StackMap locals:
StackMap stack:
aload 0
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
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: aload 0
getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
ifnull 49
48: aload 0
getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
invokevirtual com.sun.tools.jdi.TargetVM$EventController.release:()V
49: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
dup
astore 4
monitorenter
50: aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 51: goto 53
52: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.List java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.jdi.EventQueueImpl
invokevirtual com.sun.tools.jdi.EventQueueImpl.close:()V
53: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 52
end local 5 54: 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: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
dup
astore 4
monitorenter
59: aload 0
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
start local 5 60: goto 68
61: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.jdi.Packet
astore 6
start local 6 62: aload 6
dup
astore 7
monitorenter
63: aload 6
invokevirtual java.lang.Object.notify:()V
64: 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 68: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 61
69: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
end local 5 70: 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: StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
StackMap stack:
aload 0
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: aload 0
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: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: aload 1
getfield com.sun.tools.jdi.Packet.cmdSet:S
tableswitch { // 64 - 64
64: 1
default: 3
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.tools.jdi.TargetVM.handleEventCmdSet:(Lcom/sun/tools/jdi/Packet;)V
2: goto 7
3: 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
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: aload 1
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
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: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: return
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: new com.sun.tools.jdi.EventSetImpl
dup
aload 0
getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 1
invokespecial com.sun.tools.jdi.EventSetImpl.<init>:(Lcom/sun/jdi/VirtualMachine;Lcom/sun/tools/jdi/Packet;)V
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.sun.tools.jdi.TargetVM.queueEventSet:(Lcom/sun/jdi/event/EventSet;)V
2: return
end local 2 end local 1 end local 0 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 0: aload 0
getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
ifnonnull 2
1: aload 0
new com.sun.tools.jdi.TargetVM$EventController
dup
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
areturn
end local 0 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 start local 1 0: aload 0
getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
ifne 4
iload 1
sipush 2000
if_icmple 4
1: aload 0
invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
invokevirtual com.sun.tools.jdi.TargetVM$EventController.hold:()V
2: aload 0
iconst_1
putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
3: goto 7
StackMap locals:
StackMap stack:
4: aload 0
getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
ifeq 7
iload 1
bipush 100
if_icmpge 7
5: aload 0
invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
invokevirtual com.sun.tools.jdi.TargetVM$EventController.release:()V
6: aload 0
iconst_0
putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 0: iconst_0
istore 1
start local 1 1: aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
dup
astore 2
monitorenter
2: aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 3: goto 6
4: StackMap locals: int java.util.List java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.jdi.EventQueueImpl
astore 4
start local 4 5: iload 1
aload 4
invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
invokestatic java.lang.Math.max:(II)I
istore 1
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 3 7: 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: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
12: return
end local 1 end local 0 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 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
dup
astore 3
monitorenter
2: aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 3: goto 7
4: StackMap locals: int java.util.List java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.jdi.EventQueueImpl
astore 5
start local 5 5: aload 5
aload 1
invokevirtual com.sun.tools.jdi.EventQueueImpl.enqueue:(Lcom/sun/jdi/event/EventSet;)V
6: iload 2
aload 5
invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
invokestatic java.lang.Math.max:(II)I
istore 2
end local 5 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 4 8: 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: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
13: return
end local 2 end local 1 end local 0 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 start local 1 0: aload 1
getfield com.sun.tools.jdi.Packet.id:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
dup
astore 3
monitorenter
2: aload 0
getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
aload 2
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: 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: StackMap locals:
StackMap stack:
aload 0
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: aload 0
aload 1
iconst_1
invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
aload 1
invokevirtual com.sun.tools.jdi.Packet.toByteArray:()[B
invokevirtual com.sun.jdi.connect.spi.Connection.writePacket:([B)V
10: goto 13
StackMap locals:
StackMap stack: java.io.IOException
11: astore 3
start local 3 12: new com.sun.jdi.VMDisconnectedException
dup
aload 3
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokespecial com.sun.jdi.VMDisconnectedException.<init>:(Ljava/lang/String;)V
athrow
end local 3 13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 start local 1 0: aload 1
dup
astore 2
monitorenter
1: goto 5
2: StackMap locals: com.sun.tools.jdi.Packet
StackMap stack:
aload 1
invokevirtual java.lang.Object.wait:()V
3: goto 5
StackMap locals:
StackMap stack: java.lang.InterruptedException
4: pop
5: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.Packet.replied:Z
ifne 6
aload 0
getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
ifne 2
6: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.Packet.replied:Z
ifne 8
7: new com.sun.jdi.VMDisconnectedException
dup
invokespecial com.sun.jdi.VMDisconnectedException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: aload 0
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: aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 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 0: aload 0
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: aload 0
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: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
3: aload 0
getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
4: goto 6
StackMap locals:
StackMap stack: java.io.IOException
5: pop
6: StackMap locals:
StackMap stack:
return
end local 0 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