class com.sun.tools.example.debug.bdi.Session
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.example.debug.bdi.Session
  super_class: java.lang.Object
{
  final com.sun.jdi.VirtualMachine vm;
    descriptor: Lcom/sun/jdi/VirtualMachine;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.example.debug.bdi.ExecutionManager runtime;
    descriptor: Lcom/sun/tools/example/debug/bdi/ExecutionManager;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.example.debug.bdi.OutputListener diagnostics;
    descriptor: Lcom/sun/tools/example/debug/bdi/OutputListener;
    flags: (0x0010) ACC_FINAL

  boolean running;
    descriptor: Z
    flags: (0x0000) 

  boolean interrupted;
    descriptor: Z
    flags: (0x0000) 

  private com.sun.tools.example.debug.bdi.JDIEventSource eventSourceThread;
    descriptor: Lcom/sun/tools/example/debug/bdi/JDIEventSource;
    flags: (0x0002) ACC_PRIVATE

  private int traceFlags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(com.sun.jdi.VirtualMachine, com.sun.tools.example.debug.bdi.ExecutionManager, com.sun.tools.example.debug.bdi.OutputListener);
    descriptor: (Lcom/sun/jdi/VirtualMachine;Lcom/sun/tools/example/debug/bdi/ExecutionManager;Lcom/sun/tools/example/debug/bdi/OutputListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.tools.example.debug.bdi.Session this
        start local 1 // com.sun.jdi.VirtualMachine vm
        start local 2 // com.sun.tools.example.debug.bdi.ExecutionManager runtime
        start local 3 // com.sun.tools.example.debug.bdi.OutputListener diagnostics
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.example.debug.bdi.Session.running:Z
         2: .line 51
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.example.debug.bdi.Session.interrupted:Z
         3: .line 53
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.example.debug.bdi.Session.eventSourceThread:Lcom/sun/tools/example/debug/bdi/JDIEventSource;
         4: .line 55
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.example.debug.bdi.Session.dead:Z
         5: .line 59
            aload 0 /* this */
            aload 1 /* vm */
            putfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
         6: .line 60
            aload 0 /* this */
            aload 2 /* runtime */
            putfield com.sun.tools.example.debug.bdi.Session.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
         7: .line 61
            aload 0 /* this */
            aload 3 /* diagnostics */
            putfield com.sun.tools.example.debug.bdi.Session.diagnostics:Lcom/sun/tools/example/debug/bdi/OutputListener;
         8: .line 62
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.example.debug.bdi.Session.traceFlags:I
         9: .line 63
            return
        end local 3 // com.sun.tools.example.debug.bdi.OutputListener diagnostics
        end local 2 // com.sun.tools.example.debug.bdi.ExecutionManager runtime
        end local 1 // com.sun.jdi.VirtualMachine vm
        end local 0 // com.sun.tools.example.debug.bdi.Session this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/sun/tools/example/debug/bdi/Session;
            0   10     1           vm  Lcom/sun/jdi/VirtualMachine;
            0   10     2      runtime  Lcom/sun/tools/example/debug/bdi/ExecutionManager;
            0   10     3  diagnostics  Lcom/sun/tools/example/debug/bdi/OutputListener;
    MethodParameters:
             Name  Flags
      vm           
      runtime      
      diagnostics  

  public boolean isInterrupted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.Session this
         0: .line 69
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.interrupted:Z
            ireturn
        end local 0 // com.sun.tools.example.debug.bdi.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/example/debug/bdi/Session;

  public void setTraceMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.Session this
        start local 1 // int traceFlags
         0: .line 73
            aload 0 /* this */
            iload 1 /* traceFlags */
            putfield com.sun.tools.example.debug.bdi.Session.traceFlags:I
         1: .line 74
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.dead:Z
            ifne 3
         2: .line 75
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
            iload 1 /* traceFlags */
            invokeinterface com.sun.jdi.VirtualMachine.setDebugTraceMode:(I)V
         3: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int traceFlags
        end local 0 // com.sun.tools.example.debug.bdi.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/tools/example/debug/bdi/Session;
            0    4     1  traceFlags  I
    MethodParameters:
            Name  Flags
      traceFlags  

  public boolean attach();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.Session this
         0: .line 80
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.traceFlags:I
            invokeinterface com.sun.jdi.VirtualMachine.setDebugTraceMode:(I)V
         1: .line 81
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.diagnostics:Lcom/sun/tools/example/debug/bdi/OutputListener;
            ldc "Connected to VM"
            invokeinterface com.sun.tools.example.debug.bdi.OutputListener.putString:(Ljava/lang/String;)V
         2: .line 82
            aload 0 /* this */
            new com.sun.tools.example.debug.bdi.JDIEventSource
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.example.debug.bdi.JDIEventSource.<init>:(Lcom/sun/tools/example/debug/bdi/Session;)V
            putfield com.sun.tools.example.debug.bdi.Session.eventSourceThread:Lcom/sun/tools/example/debug/bdi/JDIEventSource;
         3: .line 83
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.eventSourceThread:Lcom/sun/tools/example/debug/bdi/JDIEventSource;
            invokevirtual com.sun.tools.example.debug.bdi.JDIEventSource.start:()V
         4: .line 84
            iconst_1
            ireturn
        end local 0 // com.sun.tools.example.debug.bdi.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/example/debug/bdi/Session;

  public void detach();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.Session this
         0: .line 88
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.dead:Z
            ifne 8
         1: .line 89
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.eventSourceThread:Lcom/sun/tools/example/debug/bdi/JDIEventSource;
            invokevirtual com.sun.tools.example.debug.bdi.JDIEventSource.interrupt:()V
         2: .line 90
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.example.debug.bdi.Session.eventSourceThread:Lcom/sun/tools/example/debug/bdi/JDIEventSource;
         3: .line 99
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.vm:Lcom/sun/jdi/VirtualMachine;
            invokeinterface com.sun.jdi.VirtualMachine.dispose:()V
         4: .line 100
            goto 6
      StackMap locals:
      StackMap stack: com.sun.jdi.VMDisconnectedException
         5: pop
         6: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.example.debug.bdi.Session.dead:Z
         7: .line 102
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.Session.diagnostics:Lcom/sun/tools/example/debug/bdi/OutputListener;
            ldc "Disconnected from VM"
            invokeinterface com.sun.tools.example.debug.bdi.OutputListener.putString:(Ljava/lang/String;)V
         8: .line 104
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.tools.example.debug.bdi.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/example/debug/bdi/Session;
      Exception table:
        from    to  target  type
           3     4       5  Class com.sun.jdi.VMDisconnectedException
}
SourceFile: "Session.java"