class com.sun.tools.example.debug.bdi.JDIEventSource extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.example.debug.bdi.JDIEventSource
super_class: java.lang.Thread
{
private com.sun.jdi.event.EventQueue queue;
descriptor: Lcom/sun/jdi/event/EventQueue;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.bdi.Session session;
descriptor: Lcom/sun/tools/example/debug/bdi/Session;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.bdi.ExecutionManager runtime;
descriptor: Lcom/sun/tools/example/debug/bdi/ExecutionManager;
flags: (0x0002) ACC_PRIVATE
private final com.sun.tools.example.debug.event.JDIListener firstListener;
descriptor: Lcom/sun/tools/example/debug/event/JDIListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean wantInterrupt;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(com.sun.tools.example.debug.bdi.Session);
descriptor: (Lcom/sun/tools/example/debug/bdi/Session;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "JDI Event Set Dispatcher"
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
1: aload 0
new com.sun.tools.example.debug.bdi.JDIEventSource$FirstListener
dup
aload 0
invokespecial com.sun.tools.example.debug.bdi.JDIEventSource$FirstListener.<init>:(Lcom/sun/tools/example/debug/bdi/JDIEventSource;)V
putfield com.sun.tools.example.debug.bdi.JDIEventSource.firstListener:Lcom/sun/tools/example/debug/event/JDIListener;
2: aload 0
aload 1
putfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
3: aload 0
aload 1
getfield com.sun.tools.example.debug.bdi.Session.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
putfield com.sun.tools.example.debug.bdi.JDIEventSource.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
4: aload 0
aload 1
getfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
invokeinterface com.sun.jdi.VirtualMachine.eventQueue:()Lcom/sun/jdi/event/EventQueue;
putfield com.sun.tools.example.debug.bdi.JDIEventSource.queue:Lcom/sun/jdi/event/EventQueue;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/example/debug/bdi/JDIEventSource;
0 6 1 session Lcom/sun/tools/example/debug/bdi/Session;
MethodParameters:
Name Flags
session
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.example.debug.bdi.JDIEventSource.runLoop:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
iconst_0
putfield com.sun.tools.example.debug.bdi.Session.running:Z
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/example/debug/bdi/JDIEventSource;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
private void runLoop();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.queue:Lcom/sun/jdi/event/EventQueue;
invokeinterface com.sun.jdi.event.EventQueue.remove:()Lcom/sun/jdi/event/EventSet;
astore 2
start local 2 1: aload 2
invokestatic com.sun.tools.example.debug.event.AbstractEventSet.toSpecificEventSet:(Lcom/sun/jdi/event/EventSet;)Lcom/sun/tools/example/debug/event/AbstractEventSet;
astore 1
start local 1 2: aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
aload 1
invokevirtual com.sun.tools.example.debug.event.AbstractEventSet.suspendedAll:()Z
putfield com.sun.tools.example.debug.bdi.Session.interrupted:Z
3: aload 0
aload 1
invokevirtual com.sun.tools.example.debug.bdi.JDIEventSource.dispatchEventSet:(Lcom/sun/tools/example/debug/event/AbstractEventSet;)V
end local 2 4: aload 1
instanceof com.sun.tools.example.debug.event.VMDisconnectEventSet
ifeq 0
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/example/debug/bdi/JDIEventSource;
2 6 1 es Lcom/sun/tools/example/debug/event/AbstractEventSet;
1 4 2 jdiEventSet Lcom/sun/jdi/event/EventSet;
Exceptions:
throws java.lang.InterruptedException
private void dispatchEventSet(com.sun.tools.example.debug.event.AbstractEventSet);
descriptor: (Lcom/sun/tools/example/debug/event/AbstractEventSet;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.sun.tools.example.debug.bdi.JDIEventSource$1
dup
aload 0
aload 1
invokespecial com.sun.tools.example.debug.bdi.JDIEventSource$1.<init>:(Lcom/sun/tools/example/debug/bdi/JDIEventSource;Lcom/sun/tools/example/debug/event/AbstractEventSet;)V
invokestatic javax.swing.SwingUtilities.invokeLater:(Ljava/lang/Runnable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/example/debug/bdi/JDIEventSource;
0 2 1 es Lcom/sun/tools/example/debug/event/AbstractEventSet;
MethodParameters:
Name Flags
es final
private void finalizeEventSet(com.sun.tools.example.debug.event.AbstractEventSet);
descriptor: (Lcom/sun/tools/example/debug/event/AbstractEventSet;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
getfield com.sun.tools.example.debug.bdi.Session.interrupted:Z
ifeq 5
aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.wantInterrupt:Z
ifne 5
1: aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
iconst_0
putfield com.sun.tools.example.debug.bdi.Session.interrupted:Z
2: aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
getfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
invokeinterface com.sun.jdi.VirtualMachine.resume:()V
3: goto 5
StackMap locals:
StackMap stack: com.sun.jdi.VMDisconnectedException
4: pop
5: StackMap locals:
StackMap stack:
aload 1
instanceof com.sun.tools.example.debug.event.ThreadDeathEventSet
ifeq 8
6: aload 1
checkcast com.sun.tools.example.debug.event.ThreadDeathEventSet
invokevirtual com.sun.tools.example.debug.event.ThreadDeathEventSet.getThread:()Lcom/sun/jdi/ThreadReference;
astore 2
start local 2 7: aload 0
getfield com.sun.tools.example.debug.bdi.JDIEventSource.session:Lcom/sun/tools/example/debug/bdi/Session;
getfield com.sun.tools.example.debug.bdi.Session.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
aload 2
invokevirtual com.sun.tools.example.debug.bdi.ExecutionManager.removeThreadInfo:(Lcom/sun/jdi/ThreadReference;)V
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/example/debug/bdi/JDIEventSource;
0 9 1 es Lcom/sun/tools/example/debug/event/AbstractEventSet;
7 8 2 t Lcom/sun/jdi/ThreadReference;
Exception table:
from to target type
2 3 4 Class com.sun.jdi.VMDisconnectedException
MethodParameters:
Name Flags
es
}
SourceFile: "JDIEventSource.java"
NestMembers:
com.sun.tools.example.debug.bdi.JDIEventSource$1 com.sun.tools.example.debug.bdi.JDIEventSource$FirstListener
InnerClasses:
com.sun.tools.example.debug.bdi.JDIEventSource$1
private FirstListener = com.sun.tools.example.debug.bdi.JDIEventSource$FirstListener of com.sun.tools.example.debug.bdi.JDIEventSource