final class com.oracle.truffle.api.debug.DebuggerExecutionLifecycle implements com.oracle.truffle.api.instrumentation.ContextsListener, com.oracle.truffle.api.instrumentation.ThreadsListener
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.DebuggerExecutionLifecycle
  super_class: java.lang.Object
{
  private final com.oracle.truffle.api.debug.DebuggerSession session;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.instrumentation.Instrumenter lifecycleInstrumenter;
    descriptor: Lcom/oracle/truffle/api/instrumentation/Instrumenter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.ContextsListener> contextsBinding;
    descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;

  private volatile com.oracle.truffle.api.debug.DebugContextsListener contextsListener;
    descriptor: Lcom/oracle/truffle/api/debug/DebugContextsListener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.ThreadsListener> threadsBinding;
    descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>;

  private volatile com.oracle.truffle.api.debug.DebugThreadsListener threadsListener;
    descriptor: Lcom/oracle/truffle/api/debug/DebugThreadsListener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.Map<com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.debug.DebugContext> contextMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/debug/DebugContext;>;

  void <init>(com.oracle.truffle.api.debug.DebuggerSession);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.debug.DebuggerSession session
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextMap:Ljava/util/Map;
         2: .line 65
            aload 0 /* this */
            aload 1 /* session */
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
         3: .line 66
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getDebugger:()Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.lifecycleInstrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
         4: .line 67
            return
        end local 1 // com.oracle.truffle.api.debug.DebuggerSession session
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1  session  Lcom/oracle/truffle/api/debug/DebuggerSession;
    MethodParameters:
         Name  Flags
      session  

  synchronized void setContextsListener(com.oracle.truffle.api.debug.DebugContextsListener, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugContextsListener;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.debug.DebugContextsListener listener
        start local 2 // boolean includeExistingContexts
         0: .line 70
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnull 2
         1: .line 71
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
         3: .line 74
            aload 1 /* listener */
            ifnull 6
         4: .line 75
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.lifecycleInstrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 0 /* this */
            iload 2 /* includeExistingContexts */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachContextsListener:(Lcom/oracle/truffle/api/instrumentation/ContextsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
         5: .line 76
            goto 9
         6: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
         7: .line 78
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnonnull 9
         8: .line 79
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         9: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean includeExistingContexts
        end local 1 // com.oracle.truffle.api.debug.DebugContextsListener listener
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   10     0                     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0   10     1                 listener  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            0   10     2  includeExistingContexts  Z
    MethodParameters:
                         Name  Flags
      listener                 
      includeExistingContexts  

  synchronized void setThreadsListener(com.oracle.truffle.api.debug.DebugThreadsListener, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugThreadsListener;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.debug.DebugThreadsListener listener
        start local 2 // boolean includeExistingThreads
         0: .line 85
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnull 2
         1: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsListener:Lcom/oracle/truffle/api/debug/DebugThreadsListener;
         3: .line 89
            aload 1 /* listener */
            ifnull 6
         4: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.lifecycleInstrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 0 /* this */
            iload 2 /* includeExistingThreads */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachThreadsListener:(Lcom/oracle/truffle/api/instrumentation/ThreadsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
         5: .line 91
            goto 9
         6: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
         7: .line 93
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnonnull 9
         8: .line 94
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         9: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean includeExistingThreads
        end local 1 // com.oracle.truffle.api.debug.DebugThreadsListener listener
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0                    this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0   10     1                listener  Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            0   10     2  includeExistingThreads  Z
    MethodParameters:
                        Name  Flags
      listener                
      includeExistingThreads  

  com.oracle.truffle.api.debug.DebugContext getCachedDebugContext(com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
         0: .line 100
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextMap:Ljava/util/Map;
            aload 1 /* context */
            new com.oracle.truffle.api.debug.DebuggerExecutionLifecycle$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerExecutionLifecycle$1.<init>:(Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;)V
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugContext
            areturn
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    1     1  context  Lcom/oracle/truffle/api/TruffleContext;
    MethodParameters:
         Name  Flags
      context  

  com.oracle.truffle.api.debug.Debugger getDebugger();
    descriptor: ()Lcom/oracle/truffle/api/debug/Debugger;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
         0: .line 109
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getDebugger:()Lcom/oracle/truffle/api/debug/Debugger;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;

  com.oracle.truffle.api.debug.DebuggerSession getSession();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebuggerSession;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
         0: .line 113
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;

  public void onContextCreated(com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
         0: .line 118
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 2 /* l */
        start local 2 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 119
            aload 2 /* l */
            ifnull 4
         2: .line 120
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 3 /* dc */
        start local 3 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 121
            aload 2 /* l */
            aload 3 /* dc */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.contextCreated:(Lcom/oracle/truffle/api/debug/DebugContext;)V
        end local 3 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 123
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1  context  Lcom/oracle/truffle/api/TruffleContext;
            1    5     2        l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     3       dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
         Name  Flags
      context  

  public void onLanguageContextCreated(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 127
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 128
            aload 3 /* l */
            ifnull 4
         2: .line 129
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 130
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* language */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.languageContextCreated:(Lcom/oracle/truffle/api/debug/DebugContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 132
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1   context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    5     3         l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     4        dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
          Name  Flags
      context   
      language  

  public void onLanguageContextInitialized(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 136
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 137
            aload 3 /* l */
            ifnull 4
         2: .line 138
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 139
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* language */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.languageContextInitialized:(Lcom/oracle/truffle/api/debug/DebugContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 141
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1   context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    5     3         l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     4        dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
          Name  Flags
      context   
      language  

  public void onLanguageContextFinalized(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 145
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 146
            aload 3 /* l */
            ifnull 4
         2: .line 147
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 148
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* language */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.languageContextFinalized:(Lcom/oracle/truffle/api/debug/DebugContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 150
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1   context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    5     3         l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     4        dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
          Name  Flags
      context   
      language  

  public void onLanguageContextDisposed(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 155
            aload 3 /* l */
            ifnull 4
         2: .line 156
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 157
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* language */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.languageContextDisposed:(Lcom/oracle/truffle/api/debug/DebugContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 159
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1   context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    5     3         l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     4        dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
          Name  Flags
      context   
      language  

  public void onContextClosed(com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
         0: .line 163
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.contextsListener:Lcom/oracle/truffle/api/debug/DebugContextsListener;
            astore 2 /* l */
        start local 2 // com.oracle.truffle.api.debug.DebugContextsListener l
         1: .line 164
            aload 2 /* l */
            ifnull 4
         2: .line 165
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 3 /* dc */
        start local 3 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 166
            aload 2 /* l */
            aload 3 /* dc */
            invokeinterface com.oracle.truffle.api.debug.DebugContextsListener.contextClosed:(Lcom/oracle/truffle/api/debug/DebugContext;)V
        end local 3 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 168
      StackMap locals: com.oracle.truffle.api.debug.DebugContextsListener
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.DebugContextsListener l
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1  context  Lcom/oracle/truffle/api/TruffleContext;
            1    5     2        l  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            3    4     3       dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
         Name  Flags
      context  

  public void onThreadInitialized(com.oracle.truffle.api.TruffleContext, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // java.lang.Thread thread
         0: .line 172
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsListener:Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugThreadsListener l
         1: .line 173
            aload 3 /* l */
            ifnull 4
         2: .line 174
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 175
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* thread */
            invokeinterface com.oracle.truffle.api.debug.DebugThreadsListener.threadInitialized:(Lcom/oracle/truffle/api/debug/DebugContext;Ljava/lang/Thread;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 177
      StackMap locals: com.oracle.truffle.api.debug.DebugThreadsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugThreadsListener l
        end local 2 // java.lang.Thread thread
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1  context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2   thread  Ljava/lang/Thread;
            1    5     3        l  Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            3    4     4       dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
         Name  Flags
      context  
      thread   

  public void onThreadDisposed(com.oracle.truffle.api.TruffleContext, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
        start local 1 // com.oracle.truffle.api.TruffleContext context
        start local 2 // java.lang.Thread thread
         0: .line 181
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.threadsListener:Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.api.debug.DebugThreadsListener l
         1: .line 182
            aload 3 /* l */
            ifnull 4
         2: .line 183
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            astore 4 /* dc */
        start local 4 // com.oracle.truffle.api.debug.DebugContext dc
         3: .line 184
            aload 3 /* l */
            aload 4 /* dc */
            aload 2 /* thread */
            invokeinterface com.oracle.truffle.api.debug.DebugThreadsListener.threadDisposed:(Lcom/oracle/truffle/api/debug/DebugContext;Ljava/lang/Thread;)V
        end local 4 // com.oracle.truffle.api.debug.DebugContext dc
         4: .line 186
      StackMap locals: com.oracle.truffle.api.debug.DebugThreadsListener
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.debug.DebugThreadsListener l
        end local 2 // java.lang.Thread thread
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    5     1  context  Lcom/oracle/truffle/api/TruffleContext;
            0    5     2   thread  Ljava/lang/Thread;
            1    5     3        l  Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            3    4     4       dc  Lcom/oracle/truffle/api/debug/DebugContext;
    MethodParameters:
         Name  Flags
      context  
      thread   
}
SourceFile: "DebuggerExecutionLifecycle.java"
NestMembers:
  com.oracle.truffle.api.debug.DebuggerExecutionLifecycle$1
InnerClasses:
  com.oracle.truffle.api.debug.DebuggerExecutionLifecycle$1
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument