public class com.sun.tools.jdi.ThreadReferenceImpl extends com.sun.tools.jdi.ObjectReferenceImpl implements com.sun.jdi.ThreadReference, com.sun.tools.jdi.VMListener
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.jdi.ThreadReferenceImpl
super_class: com.sun.tools.jdi.ObjectReferenceImpl
{
static final int SUSPEND_STATUS_SUSPENDED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int SUSPEND_STATUS_BREAK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
private int suspendedZombieCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private com.sun.jdi.ThreadGroupReference threadGroup;
descriptor: Lcom/sun/jdi/ThreadGroupReference;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.jdi.ThreadReferenceImpl$LocalCache localCache;
descriptor: Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
flags: (0x0002) ACC_PRIVATE
private java.util.List<java.lang.ref.WeakReference<com.sun.tools.jdi.ThreadListener>> listeners;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/ref/WeakReference<Lcom/sun/tools/jdi/ThreadListener;>;>;
private void resetLocalCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
dup
invokespecial com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.<init>:()V
putfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
protected com.sun.tools.jdi.ObjectReferenceImpl$Cache newCache();
descriptor: ()Lcom/sun/tools/jdi/ObjectReferenceImpl$Cache;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: new com.sun.tools.jdi.ThreadReferenceImpl$Cache
dup
invokespecial com.sun.tools.jdi.ThreadReferenceImpl$Cache.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
void <init>(com.sun.jdi.VirtualMachine, long);
descriptor: (Lcom/sun/jdi/VirtualMachine;J)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
lload 2
invokespecial com.sun.tools.jdi.ObjectReferenceImpl.<init>:(Lcom/sun/jdi/VirtualMachine;J)V
1: aload 0
iconst_0
putfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.sun.tools.jdi.ThreadReferenceImpl.listeners:Ljava/util/List;
3: aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.resetLocalCache:()V
4: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
aload 0
invokevirtual com.sun.tools.jdi.VMState.addListener:(Lcom/sun/tools/jdi/VMListener;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 6 1 aVm Lcom/sun/jdi/VirtualMachine;
0 6 2 aRef J
MethodParameters:
Name Flags
aVm
aRef
protected java.lang.String description();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "ThreadReference "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.uniqueID:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
public boolean vmNotSuspended(com.sun.tools.jdi.VMAction);
descriptor: (Lcom/sun/tools/jdi/VMAction;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.tools.jdi.VMAction.resumingThread:()Lcom/sun/jdi/ThreadReference;
ifnonnull 9
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
2: aload 0
new com.sun.tools.jdi.ThreadAction
dup
aload 0
3: iconst_2
invokespecial com.sun.tools.jdi.ThreadAction.<init>:(Lcom/sun/jdi/ThreadReference;I)V
4: invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.processThreadAction:(Lcom/sun/tools/jdi/ThreadAction;)V
5: aload 2
monitorexit
6: goto 9
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.VMAction com.sun.tools.jdi.VMState
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.sun.tools.jdi.ObjectReferenceImpl.vmNotSuspended:(Lcom/sun/tools/jdi/VMAction;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 10 1 action Lcom/sun/tools/jdi/VMAction;
Exception table:
from to target type
2 6 7 any
7 8 7 any
MethodParameters:
Name Flags
action
public java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.getCache:()Lcom/sun/tools/jdi/ObjectReferenceImpl$Cache;
checkcast com.sun.tools.jdi.ThreadReferenceImpl$Cache
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
getfield com.sun.tools.jdi.ThreadReferenceImpl$Cache.name:Ljava/lang/String;
astore 1
4: StackMap locals: java.lang.String com.sun.tools.jdi.ThreadReferenceImpl$Cache
StackMap stack:
aload 1
ifnonnull 13
5: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Name.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Name;
6: getfield com.sun.tools.jdi.JDWP$ThreadReference$Name.threadName:Ljava/lang/String;
7: astore 1
8: aload 2
ifnull 13
9: aload 2
aload 1
putfield com.sun.tools.jdi.ThreadReferenceImpl$Cache.name:Ljava/lang/String;
end local 2 10: goto 13
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl java.lang.String
StackMap stack: com.sun.tools.jdi.JDWPException
11: astore 2
start local 2 12: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 13: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 14 1 name Ljava/lang/String;
2 10 2 local Lcom/sun/tools/jdi/ThreadReferenceImpl$Cache;
12 13 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 10 11 Class com.sun.tools.jdi.JDWPException
com.sun.tools.jdi.PacketStream sendResumingCommand(com.sun.tools.jdi.CommandSender);
descriptor: (Lcom/sun/tools/jdi/CommandSender;)Lcom/sun/tools/jdi/PacketStream;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
1: aload 0
new com.sun.tools.jdi.ThreadAction
dup
aload 0
2: iconst_2
invokespecial com.sun.tools.jdi.ThreadAction.<init>:(Lcom/sun/jdi/ThreadReference;I)V
3: invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.processThreadAction:(Lcom/sun/tools/jdi/ThreadAction;)V
4: aload 1
invokeinterface com.sun.tools.jdi.CommandSender.send:()Lcom/sun/tools/jdi/PacketStream;
aload 2
monitorexit
5: areturn
6: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.CommandSender com.sun.tools.jdi.VMState
StackMap stack: java.lang.Throwable
aload 2
monitorexit
7: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 8 1 sender Lcom/sun/tools/jdi/CommandSender;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
sender
public void suspend();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Suspend.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Suspend;
pop
1: goto 4
StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
2: astore 1
start local 1 3: aload 1
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
3 4 1 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
0 1 2 Class com.sun.tools.jdi.JDWPException
public void resume();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
ifle 3
1: aload 0
dup
getfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
iconst_1
isub
putfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
4: aload 0
new com.sun.tools.jdi.ThreadAction
dup
aload 0
5: iconst_2
invokespecial com.sun.tools.jdi.ThreadAction.<init>:(Lcom/sun/jdi/ThreadReference;I)V
6: invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.processThreadAction:(Lcom/sun/tools/jdi/ThreadAction;)V
7: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Resume.enqueueCommand:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/PacketStream;
astore 1
start local 1 8: aload 2
monitorexit
9: goto 12
end local 1 StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl top com.sun.tools.jdi.VMState
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
start local 1 12: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.PacketStream
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 1
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Resume.waitForReply:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/PacketStream;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Resume;
pop
13: goto 16
StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
14: astore 2
start local 2 15: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
8 10 1 stream Lcom/sun/tools/jdi/PacketStream;
12 17 1 stream Lcom/sun/tools/jdi/PacketStream;
15 16 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
4 9 10 any
10 11 10 any
12 13 14 Class com.sun.tools.jdi.JDWPException
public int suspendCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
ifle 2
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$SuspendCount.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$SuspendCount;
getfield com.sun.tools.jdi.JDWP$ThreadReference$SuspendCount.suspendCount:I
3: ireturn
4: StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
astore 1
start local 1 5: aload 1
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
5 6 1 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
2 3 4 Class com.sun.tools.jdi.JDWPException
public void stop(com.sun.jdi.ObjectReference);
descriptor: (Lcom/sun/jdi/ObjectReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.validateMirror:(Lcom/sun/jdi/Mirror;)V
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
ldc "java.lang.Throwable"
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.classesByName:(Ljava/lang/String;)Ljava/util/List;
astore 2
start local 2 2: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.sun.tools.jdi.ClassTypeImpl
astore 3
start local 3 3: aload 1
ifnull 5
4: aload 3
aload 1
invokevirtual com.sun.tools.jdi.ClassTypeImpl.isAssignableFrom:(Lcom/sun/jdi/ObjectReference;)Z
ifne 6
5: StackMap locals: java.util.List com.sun.tools.jdi.ClassTypeImpl
StackMap stack:
new com.sun.jdi.InvalidTypeException
dup
ldc "Not an instance of Throwable"
invokespecial com.sun.jdi.InvalidTypeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
7: aload 1
checkcast com.sun.tools.jdi.ObjectReferenceImpl
8: invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Stop.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;Lcom/sun/tools/jdi/ObjectReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Stop;
pop
9: goto 12
StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
10: astore 4
start local 4 11: aload 4
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 13 1 throwable Lcom/sun/jdi/ObjectReference;
2 13 2 list Ljava/util/List;
3 13 3 throwableClass Lcom/sun/tools/jdi/ClassTypeImpl;
11 12 4 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
6 9 10 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.InvalidTypeException
MethodParameters:
Name Flags
throwable
public void interrupt();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Interrupt.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Interrupt;
pop
1: goto 4
StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
2: astore 1
start local 1 3: aload 1
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
3 4 1 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
0 1 2 Class com.sun.tools.jdi.JDWPException
private com.sun.tools.jdi.JDWP$ThreadReference$Status jdwpStatus();
descriptor: ()Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 1
start local 1 1: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.status:Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
astore 2
start local 2 2: aload 2
ifnonnull 9
3: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Status.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
astore 2
4: aload 2
getfield com.sun.tools.jdi.JDWP$ThreadReference$Status.suspendStatus:I
iconst_1
iand
ifeq 9
5: aload 1
aload 2
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.status:Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
6: goto 9
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadReferenceImpl$LocalCache com.sun.tools.jdi.JDWP$ThreadReference$Status
StackMap stack: com.sun.tools.jdi.JDWPException
7: astore 3
start local 3 8: aload 3
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 3 9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 10 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
2 10 2 myStatus Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
8 9 3 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
2 6 7 Class com.sun.tools.jdi.JDWPException
public int status();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.jdwpStatus:()Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
getfield com.sun.tools.jdi.JDWP$ThreadReference$Status.threadStatus:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
public boolean isSuspended();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.suspendedZombieCount:I
ifgt 3
1: aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.jdwpStatus:()Lcom/sun/tools/jdi/JDWP$ThreadReference$Status;
getfield com.sun.tools.jdi.JDWP$ThreadReference$Status.suspendStatus:I
iconst_1
iand
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
public boolean isAtBreakpoint();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.frame:(I)Lcom/sun/jdi/StackFrame;
astore 1
start local 1 1: aload 1
invokeinterface com.sun.jdi.StackFrame.location:()Lcom/sun/jdi/Location;
astore 2
start local 2 2: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.eventRequestManager:()Lcom/sun/jdi/request/EventRequestManager;
invokeinterface com.sun.jdi.request.EventRequestManager.breakpointRequests:()Ljava/util/List;
astore 3
start local 3 3: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 4: goto 8
5: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.jdi.StackFrame com.sun.jdi.Location java.util.List java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.jdi.request.BreakpointRequest
astore 5
start local 5 6: aload 2
aload 5
invokeinterface com.sun.jdi.request.BreakpointRequest.location:()Lcom/sun/jdi/Location;
invokeinterface com.sun.jdi.Location.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iconst_1
ireturn
end local 5 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 10: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl
StackMap stack: java.lang.IndexOutOfBoundsException
pop
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack: com.sun.jdi.IncompatibleThreadStateException
pop
13: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 10 1 frame Lcom/sun/jdi/StackFrame;
2 10 2 location Lcom/sun/jdi/Location;
3 10 3 requests Ljava/util/List;
4 10 4 iter Ljava/util/Iterator;
6 8 5 request Lcom/sun/jdi/request/BreakpointRequest;
Exception table:
from to target type
0 7 10 Class java.lang.IndexOutOfBoundsException
8 9 10 Class java.lang.IndexOutOfBoundsException
0 7 12 Class com.sun.jdi.IncompatibleThreadStateException
8 9 12 Class com.sun.jdi.IncompatibleThreadStateException
public com.sun.jdi.ThreadGroupReference threadGroup();
descriptor: ()Lcom/sun/jdi/ThreadGroupReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.threadGroup:Lcom/sun/jdi/ThreadGroupReference;
ifnonnull 7
1: aload 0
2: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$ThreadGroup.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$ThreadGroup;
getfield com.sun.tools.jdi.JDWP$ThreadReference$ThreadGroup.group:Lcom/sun/tools/jdi/ThreadGroupReferenceImpl;
3: putfield com.sun.tools.jdi.ThreadReferenceImpl.threadGroup:Lcom/sun/jdi/ThreadGroupReference;
4: goto 7
StackMap locals:
StackMap stack: com.sun.tools.jdi.JDWPException
5: astore 1
start local 1 6: aload 1
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.threadGroup:Lcom/sun/jdi/ThreadGroupReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
6 7 1 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 4 5 Class com.sun.tools.jdi.JDWPException
public int frameCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 1
start local 1 1: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frameCount:I
iconst_m1
if_icmpne 10
2: aload 1
3: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$FrameCount.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$FrameCount;
getfield com.sun.tools.jdi.JDWP$ThreadReference$FrameCount.frameCount:I
4: putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frameCount:I
5: goto 10
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack: com.sun.tools.jdi.JDWPException
6: astore 2
start local 2 7: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
tableswitch { // 10 - 13
10: 8
11: 9
12: 9
13: 8
default: 9
}
8: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 10: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frameCount:I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 11 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
7 10 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 5 6 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
public java.util.List<com.sun.jdi.StackFrame> frames();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
iconst_m1
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.privateFrames:(II)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
Signature: ()Ljava/util/List<Lcom/sun/jdi/StackFrame;>;
public com.sun.jdi.StackFrame frame(int);
descriptor: (I)Lcom/sun/jdi/StackFrame;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.privateFrames:(II)Ljava/util/List;
astore 2
start local 2 1: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.sun.jdi.StackFrame
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 2 1 index I
1 2 2 list Ljava/util/List;
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
MethodParameters:
Name Flags
index
private boolean isSubrange(com.sun.tools.jdi.ThreadReferenceImpl$LocalCache, int, int);
descriptor: (Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;II)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesStart:I
if_icmpge 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 3
iconst_m1
if_icmpne 5
3: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesLength:I
iconst_m1
if_icmpne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesLength:I
iconst_m1
if_icmpne 10
6: iload 2
iload 3
iadd
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesStart:I
7: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
invokeinterface java.util.List.size:()I
iadd
if_icmple 9
8: new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
10: StackMap locals:
StackMap stack:
iload 2
iload 3
iadd
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesStart:I
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesLength:I
iadd
if_icmpgt 11
iconst_1
ireturn
StackMap locals:
StackMap stack:
11: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 12 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
0 12 2 start I
0 12 3 length I
MethodParameters:
Name Flags
snapshot
start
length
public java.util.List<com.sun.jdi.StackFrame> frames(int, int);
descriptor: (II)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifge 4
1: new java.lang.IndexOutOfBoundsException
dup
2: ldc "length must be greater than or equal to zero"
3: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.privateFrames:(II)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 5 1 start I
0 5 2 length I
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
Signature: (II)Ljava/util/List<Lcom/sun/jdi/StackFrame;>;
MethodParameters:
Name Flags
start
length
private synchronized java.util.List<com.sun.jdi.StackFrame> privateFrames(int, int);
descriptor: (II)Ljava/util/List;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=8, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 3
start local 3 1: aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
ifnull 2
aload 0
aload 3
iload 1
iload 2
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.isSubrange:(Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;II)Z
ifne 21
2: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
iload 1
iload 2
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$Frames.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;II)Lcom/sun/tools/jdi/JDWP$ThreadReference$Frames;
getfield com.sun.tools.jdi.JDWP$ThreadReference$Frames.frames:[Lcom/sun/tools/jdi/JDWP$ThreadReference$Frames$Frame;
3: astore 4
start local 4 4: aload 4
arraylength
istore 5
start local 5 5: aload 3
new java.util.ArrayList
dup
iload 5
invokespecial java.util.ArrayList.<init>:(I)V
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
6: iconst_0
istore 6
start local 6 7: goto 16
8: StackMap locals: com.sun.tools.jdi.JDWP$ThreadReference$Frames$Frame[] int int
StackMap stack:
aload 4
iload 6
aaload
getfield com.sun.tools.jdi.JDWP$ThreadReference$Frames$Frame.location:Lcom/sun/jdi/Location;
ifnonnull 10
9: new com.sun.jdi.InternalException
dup
ldc "Invalid frame location"
invokespecial com.sun.jdi.InternalException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new com.sun.tools.jdi.StackFrameImpl
dup
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
11: aload 4
iload 6
aaload
getfield com.sun.tools.jdi.JDWP$ThreadReference$Frames$Frame.frameID:J
12: aload 4
iload 6
aaload
getfield com.sun.tools.jdi.JDWP$ThreadReference$Frames$Frame.location:Lcom/sun/jdi/Location;
13: invokespecial com.sun.tools.jdi.StackFrameImpl.<init>:(Lcom/sun/jdi/VirtualMachine;Lcom/sun/tools/jdi/ThreadReferenceImpl;JLcom/sun/jdi/Location;)V
astore 7
start local 7 14: aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
iload 5
if_icmplt 8
end local 6 17: aload 3
iload 1
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesStart:I
18: aload 3
iload 2
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesLength:I
19: aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
20: areturn
end local 5 end local 4 21: StackMap locals:
StackMap stack:
iload 1
aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.framesStart:I
isub
istore 4
start local 4 22: iload 2
iconst_m1
if_icmpne 25
23: aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
invokeinterface java.util.List.size:()I
iload 4
isub
istore 5
start local 5 24: goto 26
end local 5 25: StackMap locals: int
StackMap stack:
iload 4
iload 2
iadd
istore 5
start local 5 26: StackMap locals: int
StackMap stack:
aload 3
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.frames:Ljava/util/List;
iload 4
iload 5
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
27: areturn
end local 5 end local 4 28: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl int int com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack: com.sun.tools.jdi.JDWPException
astore 4
start local 4 29: aload 4
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
tableswitch { // 10 - 13
10: 30
11: 31
12: 31
13: 30
default: 31
}
30: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:()V
athrow
31: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 32 1 start I
0 32 2 length I
1 32 3 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
4 21 4 jdwpFrames [Lcom/sun/tools/jdi/JDWP$ThreadReference$Frames$Frame;
5 21 5 count I
7 17 6 i I
14 15 7 frame Lcom/sun/jdi/StackFrame;
22 28 4 fromIndex I
24 25 5 toIndex I
26 28 5 toIndex I
29 32 4 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 20 28 Class com.sun.tools.jdi.JDWPException
21 27 28 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
Signature: (II)Ljava/util/List<Lcom/sun/jdi/StackFrame;>;
MethodParameters:
Name Flags
start
length
public java.util.List<com.sun.jdi.ObjectReference> ownedMonitors();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 1
start local 1 1: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitors:Ljava/util/List;
ifnonnull 15
2: aload 1
3: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitors.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$OwnedMonitors;
getfield com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitors.owned:[Lcom/sun/tools/jdi/ObjectReferenceImpl;
4: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitors:Ljava/util/List;
5: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
bipush 16
iand
ifeq 15
6: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.description:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: ldc " temporarily caching owned monitors"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc " (count = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitors:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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 15
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack: com.sun.tools.jdi.JDWPException
11: astore 2
start local 2 12: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
tableswitch { // 10 - 13
10: 13
11: 14
12: 14
13: 13
default: 14
}
13: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 15: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitors:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 16 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
12 15 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 10 11 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
Signature: ()Ljava/util/List<Lcom/sun/jdi/ObjectReference;>;
public com.sun.jdi.ObjectReference currentContendedMonitor();
descriptor: ()Lcom/sun/jdi/ObjectReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 1
start local 1 1: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.contendedMonitor:Lcom/sun/jdi/ObjectReference;
ifnonnull 18
2: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.triedCurrentContended:Z
ifne 18
3: aload 1
4: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$CurrentContendedMonitor.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$CurrentContendedMonitor;
getfield com.sun.tools.jdi.JDWP$ThreadReference$CurrentContendedMonitor.monitor:Lcom/sun/tools/jdi/ObjectReferenceImpl;
5: putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.contendedMonitor:Lcom/sun/jdi/ObjectReference;
6: aload 1
iconst_1
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.triedCurrentContended:Z
7: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.contendedMonitor:Lcom/sun/jdi/ObjectReference;
ifnull 18
8: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
bipush 16
iand
ifeq 18
9: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.description:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: ldc " temporarily caching contended monitor"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc " (id = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.contendedMonitor:Lcom/sun/jdi/ObjectReference;
invokeinterface com.sun.jdi.ObjectReference.uniqueID:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
13: goto 18
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack: com.sun.tools.jdi.JDWPException
14: astore 2
start local 2 15: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
tableswitch { // 10 - 13
10: 16
11: 17
12: 17
13: 16
default: 17
}
16: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 18: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.contendedMonitor:Lcom/sun/jdi/ObjectReference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 19 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
15 18 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 13 14 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
public java.util.List<com.sun.jdi.MonitorInfo> ownedMonitorsAndFrames();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.localCache:Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
astore 1
start local 1 1: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitorsInfo:Ljava/util/List;
ifnonnull 21
2: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$OwnedMonitorsStackDepthInfo;
getfield com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo.owned:[Lcom/sun/tools/jdi/JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor;
astore 2
start local 2 3: aload 1
new java.util.ArrayList
dup
aload 2
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
putfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitorsInfo:Ljava/util/List;
4: iconst_0
istore 3
start local 3 5: goto 10
6: StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl$LocalCache com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor[] int
StackMap stack:
aload 2
iload 3
aaload
pop
7: new com.sun.tools.jdi.MonitorInfoImpl
dup
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 2
iload 3
aaload
getfield com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor.monitor:Lcom/sun/tools/jdi/ObjectReferenceImpl;
aload 0
aload 2
iload 3
aaload
getfield com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor.stack_depth:I
invokespecial com.sun.tools.jdi.MonitorInfoImpl.<init>:(Lcom/sun/jdi/VirtualMachine;Lcom/sun/jdi/ObjectReference;Lcom/sun/tools/jdi/ThreadReferenceImpl;I)V
astore 4
start local 4 8: aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitorsInfo:Ljava/util/List;
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 2
arraylength
if_icmplt 6
end local 3 11: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
bipush 16
iand
ifeq 21
12: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.description:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: ldc " temporarily caching owned monitors"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc " (count = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitorsInfo:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
end local 2 16: goto 21
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
StackMap stack: com.sun.tools.jdi.JDWPException
17: astore 2
start local 2 18: aload 2
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
tableswitch { // 10 - 13
10: 19
11: 20
12: 20
13: 19
default: 20
}
19: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 2 21: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.jdi.ThreadReferenceImpl$LocalCache.ownedMonitorsInfo:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
1 22 1 snapshot Lcom/sun/tools/jdi/ThreadReferenceImpl$LocalCache;
3 16 2 minfo [Lcom/sun/tools/jdi/JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor;
5 11 3 i I
8 9 4 mon Lcom/sun/jdi/MonitorInfo;
18 21 2 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
1 16 17 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
Signature: ()Ljava/util/List<Lcom/sun/jdi/MonitorInfo;>;
public void popFrames(com.sun.jdi.StackFrame);
descriptor: (Lcom/sun/jdi/StackFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.sun.jdi.StackFrame.thread:()Lcom/sun/jdi/ThreadReference;
aload 0
invokeinterface com.sun.jdi.ThreadReference.equals:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "frame does not belong to this thread"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.canPopFrames:()Z
ifne 6
3: new java.lang.UnsupportedOperationException
dup
4: ldc "target does not support popping frames"
5: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 1
checkcast com.sun.tools.jdi.StackFrameImpl
invokevirtual com.sun.tools.jdi.StackFrameImpl.pop:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 8 1 frame Lcom/sun/jdi/StackFrame;
Exceptions:
throws com.sun.jdi.IncompatibleThreadStateException
MethodParameters:
Name Flags
frame
public void forceEarlyReturn(com.sun.jdi.Value);
descriptor: (Lcom/sun/jdi/Value;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.canForceEarlyReturn:()Z
ifne 4
1: new java.lang.UnsupportedOperationException
dup
2: ldc "target does not support the forcing of a method to return early"
3: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.validateMirrorOrNull:(Lcom/sun/jdi/Mirror;)V
5: aload 0
iconst_0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.frame:(I)Lcom/sun/jdi/StackFrame;
checkcast com.sun.tools.jdi.StackFrameImpl
astore 2
start local 2 6: goto 9
end local 2 StackMap locals:
StackMap stack: java.lang.IndexOutOfBoundsException
7: pop
8: new com.sun.jdi.InvalidStackFrameException
dup
ldc "No more frames on the stack"
invokespecial com.sun.jdi.InvalidStackFrameException.<init>:(Ljava/lang/String;)V
athrow
start local 2 9: StackMap locals: com.sun.tools.jdi.StackFrameImpl
StackMap stack:
aload 2
invokevirtual com.sun.tools.jdi.StackFrameImpl.validateStackFrame:()V
10: aload 2
invokevirtual com.sun.tools.jdi.StackFrameImpl.location:()Lcom/sun/jdi/Location;
invokeinterface com.sun.jdi.Location.method:()Lcom/sun/jdi/Method;
checkcast com.sun.tools.jdi.MethodImpl
astore 3
start local 3 11: aload 1
12: aload 3
invokevirtual com.sun.tools.jdi.MethodImpl.getReturnValueContainer:()Lcom/sun/tools/jdi/MethodImpl$ReturnContainer;
13: invokestatic com.sun.tools.jdi.ValueImpl.prepareForAssignment:(Lcom/sun/jdi/Value;Lcom/sun/tools/jdi/ValueContainer;)Lcom/sun/tools/jdi/ValueImpl;
astore 4
start local 4 14: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
aload 0
aload 4
invokestatic com.sun.tools.jdi.JDWP$ThreadReference$ForceEarlyReturn.process:(Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/tools/jdi/ThreadReferenceImpl;Lcom/sun/tools/jdi/ValueImpl;)Lcom/sun/tools/jdi/JDWP$ThreadReference$ForceEarlyReturn;
pop
15: goto 29
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.jdi.Value com.sun.tools.jdi.StackFrameImpl com.sun.tools.jdi.MethodImpl com.sun.tools.jdi.ValueImpl
StackMap stack: com.sun.tools.jdi.JDWPException
16: astore 5
start local 5 17: aload 5
invokevirtual com.sun.tools.jdi.JDWPException.errorCode:()S
lookupswitch { // 4
13: 19
15: 22
31: 25
32: 18
default: 28
}
18: StackMap locals: com.sun.tools.jdi.JDWPException
StackMap stack:
new com.sun.jdi.NativeMethodException
dup
invokespecial com.sun.jdi.NativeMethodException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
20: ldc "Thread not suspended"
21: invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
new com.sun.jdi.IncompatibleThreadStateException
dup
23: ldc "Thread has not started or has finished"
24: invokespecial com.sun.jdi.IncompatibleThreadStateException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
new com.sun.jdi.InvalidStackFrameException
dup
26: ldc "No more frames on the stack"
27: invokespecial com.sun.jdi.InvalidStackFrameException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.sun.tools.jdi.JDWPException.toJDIException:()Ljava/lang/RuntimeException;
athrow
end local 5 29: 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 30 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 30 1 returnValue Lcom/sun/jdi/Value;
6 7 2 sf Lcom/sun/tools/jdi/StackFrameImpl;
9 30 2 sf Lcom/sun/tools/jdi/StackFrameImpl;
11 30 3 meth Lcom/sun/tools/jdi/MethodImpl;
14 30 4 convertedValue Lcom/sun/tools/jdi/ValueImpl;
17 29 5 exc Lcom/sun/tools/jdi/JDWPException;
Exception table:
from to target type
5 6 7 Class java.lang.IndexOutOfBoundsException
14 15 16 Class com.sun.tools.jdi.JDWPException
Exceptions:
throws com.sun.jdi.InvalidTypeException, com.sun.jdi.ClassNotLoadedException, com.sun.jdi.IncompatibleThreadStateException
MethodParameters:
Name Flags
returnValue
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "instance of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.referenceType:()Lcom/sun/jdi/ReferenceType;
invokeinterface com.sun.jdi.ReferenceType.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc "(name='"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "', "
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 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.uniqueID:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
byte typeValueKey();
descriptor: ()B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 116
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
void addListener(com.sun.tools.jdi.ThreadListener);
descriptor: (Lcom/sun/tools/jdi/ThreadListener;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.listeners:Ljava/util/List;
new java.lang.ref.WeakReference
dup
aload 1
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadListener com.sun.tools.jdi.VMState
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 7 1 listener Lcom/sun/tools/jdi/ThreadListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
listener
void removeListener(com.sun.tools.jdi.ThreadListener);
descriptor: (Lcom/sun/tools/jdi/ThreadListener;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.listeners:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 7
3: StackMap locals: com.sun.tools.jdi.VMState java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 4
start local 4 4: aload 1
aload 4
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 3
invokeinterface java.util.Iterator.remove:()V
6: goto 8
end local 4 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 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/ThreadReferenceImpl;
0 13 1 listener Lcom/sun/tools/jdi/ThreadListener;
2 8 3 iter Ljava/util/Iterator;
4 7 4 ref Ljava/lang/ref/WeakReference;
Exception table:
from to target type
1 9 10 any
10 11 10 any
MethodParameters:
Name Flags
listener
private void processThreadAction(com.sun.tools.jdi.ThreadAction);
descriptor: (Lcom/sun/tools/jdi/ThreadAction;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.tools.jdi.ThreadReferenceImpl.listeners:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 11
3: StackMap locals: com.sun.tools.jdi.VMState java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 4
start local 4 4: aload 4
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast com.sun.tools.jdi.ThreadListener
astore 5
start local 5 5: aload 5
ifnull 10
6: aload 1
invokevirtual com.sun.tools.jdi.ThreadAction.id:()I
tableswitch { // 2 - 2
2: 7
default: 9
}
7: StackMap locals: java.lang.ref.WeakReference com.sun.tools.jdi.ThreadListener
StackMap stack:
aload 5
aload 1
invokeinterface com.sun.tools.jdi.ThreadListener.threadResumable:(Lcom/sun/tools/jdi/ThreadAction;)Z
ifne 11
8: aload 3
invokeinterface java.util.Iterator.remove:()V
9: StackMap locals:
StackMap stack:
goto 11
10: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.remove:()V
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: aload 0
invokevirtual com.sun.tools.jdi.ThreadReferenceImpl.resetLocalCache:()V
end local 3 13: aload 2
monitorexit
14: goto 17
StackMap locals: com.sun.tools.jdi.ThreadReferenceImpl com.sun.tools.jdi.ThreadAction com.sun.tools.jdi.VMState
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/tools/jdi/ThreadReferenceImpl;
0 18 1 action Lcom/sun/tools/jdi/ThreadAction;
2 13 3 iter Ljava/util/Iterator;
4 11 4 ref Ljava/lang/ref/WeakReference;
5 11 5 listener Lcom/sun/tools/jdi/ThreadListener;
Exception table:
from to target type
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
action
public com.sun.jdi.VirtualMachine virtualMachine();
descriptor: ()Lcom/sun/jdi/VirtualMachine;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial com.sun.tools.jdi.ObjectReferenceImpl.virtualMachine:()Lcom/sun/jdi/VirtualMachine;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ThreadReferenceImpl.java"
NestMembers:
com.sun.tools.jdi.ThreadReferenceImpl$Cache com.sun.tools.jdi.ThreadReferenceImpl$LocalCache
InnerClasses:
ThreadReference = com.sun.tools.jdi.JDWP$ThreadReference of com.sun.tools.jdi.JDWP
CurrentContendedMonitor = com.sun.tools.jdi.JDWP$ThreadReference$CurrentContendedMonitor of com.sun.tools.jdi.JDWP$ThreadReference
ForceEarlyReturn = com.sun.tools.jdi.JDWP$ThreadReference$ForceEarlyReturn of com.sun.tools.jdi.JDWP$ThreadReference
FrameCount = com.sun.tools.jdi.JDWP$ThreadReference$FrameCount of com.sun.tools.jdi.JDWP$ThreadReference
Frames = com.sun.tools.jdi.JDWP$ThreadReference$Frames of com.sun.tools.jdi.JDWP$ThreadReference
Frame = com.sun.tools.jdi.JDWP$ThreadReference$Frames$Frame of com.sun.tools.jdi.JDWP$ThreadReference$Frames
Interrupt = com.sun.tools.jdi.JDWP$ThreadReference$Interrupt of com.sun.tools.jdi.JDWP$ThreadReference
Name = com.sun.tools.jdi.JDWP$ThreadReference$Name of com.sun.tools.jdi.JDWP$ThreadReference
OwnedMonitors = com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitors of com.sun.tools.jdi.JDWP$ThreadReference
OwnedMonitorsStackDepthInfo = com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo of com.sun.tools.jdi.JDWP$ThreadReference
monitor = com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo$monitor of com.sun.tools.jdi.JDWP$ThreadReference$OwnedMonitorsStackDepthInfo
Resume = com.sun.tools.jdi.JDWP$ThreadReference$Resume of com.sun.tools.jdi.JDWP$ThreadReference
Status = com.sun.tools.jdi.JDWP$ThreadReference$Status of com.sun.tools.jdi.JDWP$ThreadReference
Stop = com.sun.tools.jdi.JDWP$ThreadReference$Stop of com.sun.tools.jdi.JDWP$ThreadReference
Suspend = com.sun.tools.jdi.JDWP$ThreadReference$Suspend of com.sun.tools.jdi.JDWP$ThreadReference
SuspendCount = com.sun.tools.jdi.JDWP$ThreadReference$SuspendCount of com.sun.tools.jdi.JDWP$ThreadReference
ThreadGroup = com.sun.tools.jdi.JDWP$ThreadReference$ThreadGroup of com.sun.tools.jdi.JDWP$ThreadReference
ReturnContainer = com.sun.tools.jdi.MethodImpl$ReturnContainer of com.sun.tools.jdi.MethodImpl
protected Cache = com.sun.tools.jdi.ObjectReferenceImpl$Cache of com.sun.tools.jdi.ObjectReferenceImpl
private Cache = com.sun.tools.jdi.ThreadReferenceImpl$Cache of com.sun.tools.jdi.ThreadReferenceImpl
private LocalCache = com.sun.tools.jdi.ThreadReferenceImpl$LocalCache of com.sun.tools.jdi.ThreadReferenceImpl