public abstract class com.oracle.truffle.api.instrumentation.Instrumenter
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.instrumentation.Instrumenter
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            return
        end local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/instrumentation/Instrumenter;

  public final <T extends com.oracle.truffle.api.instrumentation.ExecutionEventListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecutionEventListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter eventFilter
        start local 2 // com.oracle.truffle.api.instrumentation.ExecutionEventListener listener
         0: .line 89
            aload 0 /* this */
            aload 1 /* eventFilter */
            aconst_null
            aload 2 /* listener */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.ExecutionEventListener listener
        end local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter eventFilter
        end local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            0    1     1  eventFilter  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            0    1     2     listener  TT;
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
             Name  Flags
      eventFilter  
      listener     

  public final <T extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecutionEventFactory(com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter eventFilter
        start local 2 // com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory factory
         0: .line 118
            aload 0 /* this */
            aload 1 /* eventFilter */
            aconst_null
            aload 2 /* factory */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory factory
        end local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter eventFilter
        end local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            0    1     1  eventFilter  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            0    1     2      factory  TT;
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
             Name  Flags
      eventFilter  
      factory      

  public abstract <T extends com.oracle.truffle.api.instrumentation.ExecutionEventListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecutionEventListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      eventFilter  
      inputFilter  
      listener     

  public abstract <T extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecutionEventFactory(com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
             Name  Flags
      eventFilter  
      inputFilter  
      factory      

  public abstract <T extends com.oracle.truffle.api.instrumentation.LoadSourceListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachLoadSourceListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                        Name  Flags
      filter                  
      listener                
      includeExistingSources  

  public abstract <T extends com.oracle.truffle.api.instrumentation.LoadSourceListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachLoadSourceListener(com.oracle.truffle.api.instrumentation.SourceFilter, T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;>(Lcom/oracle/truffle/api/instrumentation/SourceFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                        Name  Flags
      filter                  
      listener                
      includeExistingSources  

  public abstract <T extends com.oracle.truffle.api.instrumentation.ExecuteSourceListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecuteSourceListener(com.oracle.truffle.api.instrumentation.SourceFilter, T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceFilter;Lcom/oracle/truffle/api/instrumentation/ExecuteSourceListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecuteSourceListener;>(Lcom/oracle/truffle/api/instrumentation/SourceFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                        Name  Flags
      filter                  
      listener                
      includeExecutedSources  

  public abstract <T extends com.oracle.truffle.api.instrumentation.LoadSourceSectionListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachLoadSourceSectionListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;>(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                               Name  Flags
      filter                         
      listener                       
      includeExistingSourceSections  

  public abstract void visitLoadedSourceSections(com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.LoadSourceSectionListener);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      filter    
      listener  

  public abstract <T extends java.io.OutputStream> com.oracle.truffle.api.instrumentation.EventBinding<T> attachOutConsumer(T);
    descriptor: (Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/io/OutputStream;>(TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
        Name  Flags
      stream  

  public abstract <T extends java.io.OutputStream> com.oracle.truffle.api.instrumentation.EventBinding<T> attachErrConsumer(T);
    descriptor: (Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/io/OutputStream;>(TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
        Name  Flags
      stream  

  public abstract <T extends com.oracle.truffle.api.instrumentation.AllocationListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachAllocationListener(com.oracle.truffle.api.instrumentation.AllocationEventFilter, T);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;Lcom/oracle/truffle/api/instrumentation/AllocationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/AllocationListener;>(Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
          Name  Flags
      filter    
      listener  

  public abstract <T extends com.oracle.truffle.api.instrumentation.ContextsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachContextsListener(T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ContextsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ContextsListener;>(TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                       Name  Flags
      listener               
      includeActiveContexts  

  public abstract <T extends com.oracle.truffle.api.instrumentation.ThreadsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachThreadsListener(T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>(TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                           Name  Flags
      listener                   
      includeInitializedThreads  

  public abstract com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ThreadsActivationListener> attachThreadsActivationListener(com.oracle.truffle.api.instrumentation.ThreadsActivationListener);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;
    MethodParameters:
          Name  Flags
      listener  

  public final java.util.List<com.oracle.truffle.api.source.SourceSection> querySourceSections(com.oracle.truffle.api.instrumentation.SourceSectionFilter);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)Ljava/util/List;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filter
         0: .line 353
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* sourceSectionList */
        start local 2 // java.util.List sourceSectionList
         1: .line 354
            aload 0 /* this */
            aload 1 /* filter */
            new com.oracle.truffle.api.instrumentation.Instrumenter$1
            dup
            aload 0 /* this */
            aload 2 /* sourceSectionList */
            invokespecial com.oracle.truffle.api.instrumentation.Instrumenter$1.<init>:(Lcom/oracle/truffle/api/instrumentation/Instrumenter;Ljava/util/List;)V
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.visitLoadedSourceSections:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;)V
         2: .line 360
            aload 2 /* sourceSectionList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 2 // java.util.List sourceSectionList
        end local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filter
        end local 0 // com.oracle.truffle.api.instrumentation.Instrumenter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            0    3     1             filter  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            1    3     2  sourceSectionList  Ljava/util/List<Lcom/oracle/truffle/api/source/SourceSection;>;
    Signature: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)Ljava/util/List<Lcom/oracle/truffle/api/source/SourceSection;>;
    MethodParameters:
        Name  Flags
      filter  

  public abstract java.util.Set<java.lang.Class<?>> queryTags(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set<Ljava/lang/Class<*>;>;
    MethodParameters:
      Name  Flags
      node  

  public abstract com.oracle.truffle.api.instrumentation.ExecutionEventNode lookupExecutionEventNode(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.instrumentation.EventBinding<?>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
    MethodParameters:
         Name  Flags
      node     
      binding  
}
SourceFile: "Instrumenter.java"
NestMembers:
  com.oracle.truffle.api.instrumentation.Instrumenter$1
InnerClasses:
  com.oracle.truffle.api.instrumentation.Instrumenter$1