public final class com.oracle.truffle.api.debug.DebuggerSession implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.DebuggerSession
  super_class: java.lang.Object
{
  private static final java.util.concurrent.atomic.AtomicInteger SESSIONS;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.ThreadLocal<java.lang.Boolean> inEvalInContext;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/lang/Boolean;>;

  static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_BEFORE;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;

  static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_AFTER;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;

  static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_ALL;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;

  private final com.oracle.truffle.api.debug.Debugger debugger;
    descriptor: Lcom/oracle/truffle/api/debug/Debugger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.debug.SuspendedCallback callback;
    descriptor: Lcom/oracle/truffle/api/debug/SuspendedCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<com.oracle.truffle.api.debug.SourceElement> sourceElements;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SourceElement;>;

  private final boolean hasExpressionElement;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean hasRootElement;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<com.oracle.truffle.api.debug.Breakpoint> breakpoints;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;

  private final java.util.Collection<com.oracle.truffle.api.debug.Breakpoint> breakpointsUnresolved;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/debug/Breakpoint;>;

  private volatile boolean breakpointsUnresolvedEmpty;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> syntaxElementsBinding;
    descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;

  final java.util.Set<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory>> allBindings;
    descriptor: Ljava/util/Set;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;>;

  private final java.util.concurrent.ConcurrentHashMap<java.lang.Thread, com.oracle.truffle.api.debug.SuspendedEvent> currentSuspendedEventMap;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SuspendedEvent;>;

  private final java.util.concurrent.ConcurrentHashMap<java.lang.Thread, com.oracle.truffle.api.debug.SteppingStrategy> strategyMap;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;>;

  private volatile boolean suspendNext;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean suspendAll;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean stepping;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean ignoreLanguageContextInitialization;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean includeInternal;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean showHostStackFrames;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private java.util.function.Predicate<com.oracle.truffle.api.source.Source> sourceFilter;
    descriptor: Ljava/util/function/Predicate;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;

  private volatile com.oracle.truffle.api.Assumption suspensionFilterUnchanged;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean alwaysHaltBreakpointsActive;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean locationBreakpointsActive;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean exceptionBreakpointsActive;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.debug.DebuggerExecutionLifecycle executionLifecycle;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.lang.ThreadLocal<com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension> threadSuspensions;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;>;

  private final com.oracle.truffle.api.debug.DebugSourcesResolver sources;
    descriptor: Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int sessionId;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean closed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 184
            ldc Lcom/oracle/truffle/api/debug/DebuggerSession;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
         3: .line 186
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic com.oracle.truffle.api.debug.DebuggerSession.SESSIONS:Ljava/util/concurrent/atomic/AtomicInteger;
         4: .line 187
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
         5: .line 189
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_BEFORE:Ljava/util/Set;
         6: .line 190
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_AFTER:Ljava/util/Set;
         7: .line 191
            new java.util.HashSet
            dup
            iconst_2
            anewarray com.oracle.truffle.api.debug.SuspendAnchor
            dup
            iconst_0
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_ALL:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.api.debug.Debugger, com.oracle.truffle.api.debug.SuspendedCallback, com.oracle.truffle.api.debug.SourceElement[]);
    descriptor: (Lcom/oracle/truffle/api/debug/Debugger;Lcom/oracle/truffle/api/debug/SuspendedCallback;[Lcom/oracle/truffle/api/debug/SourceElement;)V
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Debugger debugger
        start local 2 // com.oracle.truffle.api.debug.SuspendedCallback callback
        start local 3 // com.oracle.truffle.api.debug.SourceElement[] sourceElements
         0: .line 227
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 198
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
         2: .line 200
            aload 0 /* this */
            invokestatic java.util.concurrent.ConcurrentHashMap.newKeySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
         3: .line 201
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
         4: .line 204
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
            putfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
         5: .line 206
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
         6: .line 207
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
         7: .line 210
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
            dup
            iconst_0
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.stepping:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
         8: .line 211
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
            dup
            iconst_0
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
         9: .line 212
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
        10: .line 213
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
        11: .line 215
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Unchanged suspension filter"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
        12: .line 216
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
            dup
            iconst_1
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
        13: .line 217
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
            dup
            iconst_1
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
        14: .line 218
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
            dup
            iconst_1
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
        15: .line 220
            aload 0 /* this */
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
        16: .line 228
            aload 0 /* this */
            getstatic com.oracle.truffle.api.debug.DebuggerSession.SESSIONS:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            putfield com.oracle.truffle.api.debug.DebuggerSession.sessionId:I
        17: .line 229
            aload 0 /* this */
            aload 1 /* debugger */
            putfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
        18: .line 230
            aload 0 /* this */
            aload 2 /* callback */
            putfield com.oracle.truffle.api.debug.DebuggerSession.callback:Lcom/oracle/truffle/api/debug/SuspendedCallback;
        19: .line 231
            aload 3 /* sourceElements */
            arraylength
            tableswitch { // 0 - 1
                    0: 20
                    1: 22
              default: 24
          }
        20: .line 233
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Debugger com.oracle.truffle.api.debug.SuspendedCallback com.oracle.truffle.api.debug.SourceElement[]
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
        21: .line 234
            goto 25
        22: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* sourceElements */
            iconst_0
            aaload
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
        23: .line 237
            goto 25
        24: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            aload 3 /* sourceElements */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
        25: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            getstatic com.oracle.truffle.api.debug.SourceElement.EXPRESSION:Lcom/oracle/truffle/api/debug/SourceElement;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.hasExpressionElement:Z
        26: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            getstatic com.oracle.truffle.api.debug.SourceElement.ROOT:Lcom/oracle/truffle/api/debug/SourceElement;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
        27: .line 244
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 29
        28: .line 245
            aload 0 /* this */
            ldc "open with callback %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* callback */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        29: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebugSourcesResolver
            dup
            aload 1 /* debugger */
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokespecial com.oracle.truffle.api.debug.DebugSourcesResolver.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
        30: .line 248
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.addBindings:(ZLjava/util/function/Predicate;)V
        31: .line 249
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebuggerExecutionLifecycle
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
            putfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
        32: .line 250
            return
        end local 3 // com.oracle.truffle.api.debug.SourceElement[] sourceElements
        end local 2 // com.oracle.truffle.api.debug.SuspendedCallback callback
        end local 1 // com.oracle.truffle.api.debug.Debugger debugger
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   33     1        debugger  Lcom/oracle/truffle/api/debug/Debugger;
            0   33     2        callback  Lcom/oracle/truffle/api/debug/SuspendedCallback;
            0   33     3  sourceElements  [Lcom/oracle/truffle/api/debug/SourceElement;
    MethodParameters:
                Name  Flags
      debugger        
      callback        
      sourceElements  

  private void trace(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.String msg
        start local 2 // java.lang.Object[] parameters
         0: .line 253
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* parameters */
            invokestatic com.oracle.truffle.api.debug.Debugger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 254
            return
        end local 2 // java.lang.Object[] parameters
        end local 1 // java.lang.String msg
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1         msg  Ljava/lang/String;
            0    2     2  parameters  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      msg         
      parameters  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 263
            ldc "Session[id=%s]"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sessionId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

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

  public com.oracle.truffle.api.debug.DebugScope getTopScope(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugScope;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.String languageId
         0: .line 284
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger: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.getLanguages:()Ljava/util/Map;
            aload 1 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 2 /* info */
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo info
         1: .line 285
            aload 2 /* info */
            ifnonnull 3
         2: .line 286
            aconst_null
            areturn
         3: .line 289
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 2 /* info */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getScope:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         4: .line 290
            aload 3 /* scope */
            ifnonnull 6
         5: .line 291
            aconst_null
            areturn
         6: .line 293
      StackMap locals: java.lang.Object
      StackMap stack:
            new com.oracle.truffle.api.debug.DebugScope
            dup
            aload 3 /* scope */
            aload 0 /* this */
            aload 2 /* info */
            invokespecial com.oracle.truffle.api.debug.DebugScope.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
         7: areturn
        end local 3 // java.lang.Object scope
         8: .line 294
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.lang.String com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack: java.lang.ThreadDeath
            astore 3 /* td */
        start local 3 // java.lang.ThreadDeath td
         9: .line 295
            aload 3 /* td */
            athrow
        end local 3 // java.lang.ThreadDeath td
        10: .line 296
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
        11: .line 297
            new com.oracle.truffle.api.debug.DebugException
            dup
            aload 0 /* this */
            aload 3 /* ex */
            aload 2 /* info */
            aconst_null
            iconst_1
            aconst_null
            invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/Throwable;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
            athrow
        end local 3 // java.lang.Throwable ex
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo info
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   12     1  languageId  Ljava/lang/String;
            1   12     2        info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            4    8     3       scope  Ljava/lang/Object;
            9   10     3          td  Ljava/lang/ThreadDeath;
           11   12     3          ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     5       8  Class java.lang.ThreadDeath
           6     7       8  Class java.lang.ThreadDeath
           3     5      10  Class java.lang.Throwable
           6     7      10  Class java.lang.Throwable
    Exceptions:
      throws com.oracle.truffle.api.debug.DebugException
    MethodParameters:
            Name  Flags
      languageId  

  public java.util.Map<java.lang.String, ? extends com.oracle.truffle.api.debug.DebugValue> getExportedSymbols();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 307
            new com.oracle.truffle.api.debug.DebuggerSession$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$1.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
    Signature: ()Ljava/util/Map<Ljava/lang/String;+Lcom/oracle/truffle/api/debug/DebugValue;>;

  public void setShowHostStackFrames(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // boolean showHostStackFrames
         0: .line 340
            aload 0 /* this */
            iload 1 /* showHostStackFrames */
            putfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
         1: .line 341
            return
        end local 1 // boolean showHostStackFrames
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1  showHostStackFrames  Z
    MethodParameters:
                     Name  Flags
      showHostStackFrames  

  boolean isShowHostStackFrames();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 344
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
            ireturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  public void setSteppingFilter(com.oracle.truffle.api.debug.SuspensionFilter);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspensionFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.SuspensionFilter steppingFilter
         0: .line 353
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            aload 1 /* steppingFilter */
            invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.isIgnoreLanguageContextInitialization:()Z
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
         1: .line 354
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 355
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            istore 3 /* oldIncludeInternal */
        start local 3 // boolean oldIncludeInternal
         3: .line 356
            aload 0 /* this */
            aload 1 /* steppingFilter */
            invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.isInternalIncluded:()Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
         4: .line 357
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
            astore 4 /* oldSourceFilter */
        start local 4 // java.util.function.Predicate oldSourceFilter
         5: .line 358
            aload 0 /* this */
            aload 1 /* steppingFilter */
            invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.getSourcePredicate:()Ljava/util/function/Predicate;
            putfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
         6: .line 359
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         7: .line 360
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Unchanged suspension filter"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
         8: .line 361
            iload 3 /* oldIncludeInternal */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            if_icmpne 9
            aload 4 /* oldSourceFilter */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
            if_acmpeq 11
         9: .line 362
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.removeBindings:()V
        10: .line 363
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.addBindings:(ZLjava/util/function/Predicate;)V
        end local 4 // java.util.function.Predicate oldSourceFilter
        end local 3 // boolean oldIncludeInternal
        11: .line 354
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 2
            monitorexit
        14: athrow
        15: .line 366
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.debug.SuspensionFilter steppingFilter
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0                this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   16     1      steppingFilter  Lcom/oracle/truffle/api/debug/SuspensionFilter;
            3   11     3  oldIncludeInternal  Z
            5   11     4     oldSourceFilter  Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
      Exception table:
        from    to  target  type
           2    12      13  any
          13    14      13  any
    MethodParameters:
                Name  Flags
      steppingFilter  

  boolean isIncludeInternal();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 369
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            ireturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  boolean isSourceFilteredOut(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 373
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
            astore 2 /* filter */
        start local 2 // java.util.function.Predicate filter
         1: .line 374
            aload 2 /* filter */
            ifnull 5
         2: .line 375
            aload 2 /* filter */
            aload 1 /* source */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: java.util.function.Predicate
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 377
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.function.Predicate filter
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    6     1  source  Lcom/oracle/truffle/api/source/Source;
            1    6     2  filter  Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
    MethodParameters:
        Name  Flags
      source  

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

  public synchronized void suspendNextExecution();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 395
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 396
            aload 0 /* this */
            ldc "suspend next execution"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 399
            new java.lang.IllegalStateException
            dup
            ldc "session closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
         5: .line 403
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
         6: .line 404
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  public boolean suspendHere(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 425
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SuspendedEvent
            astore 2 /* event */
        start local 2 // com.oracle.truffle.api.debug.SuspendedEvent event
         1: .line 426
            aload 2 /* event */
            ifnull 3
         2: .line 427
            new java.lang.IllegalStateException
            dup
            ldc "Suspended already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 429
      StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent
      StackMap stack:
            aconst_null
            astore 3 /* nodeRoot */
        start local 3 // com.oracle.truffle.api.nodes.RootNode nodeRoot
         4: .line 430
            aload 1 /* node */
            ifnull 8
         5: .line 431
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* nodeRoot */
         6: .line 432
            aload 3 /* nodeRoot */
            ifnonnull 8
         7: .line 433
            new java.lang.IllegalArgumentException
            dup
            ldc "The node %s does not have a root."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* node */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 436
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.getCurrentFrame:()Lcom/oracle/truffle/api/frame/FrameInstance;
            astore 4 /* frameInstance */
        start local 4 // com.oracle.truffle.api.frame.FrameInstance frameInstance
         9: .line 437
            aload 4 /* frameInstance */
            ifnonnull 11
        10: .line 438
            iconst_0
            ireturn
        11: .line 440
      StackMap locals: com.oracle.truffle.api.frame.FrameInstance
      StackMap stack:
            aload 4 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 5 /* root */
        start local 5 // com.oracle.truffle.api.nodes.RootNode root
        12: .line 441
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            ifne 18
        13: .line 442
            aload 5 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.isInternal:()Z
            ifeq 18
        14: .line 444
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.debug.DebuggerSession$2
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$2.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameInstance
            astore 4 /* frameInstance */
        15: .line 458
            aload 4 /* frameInstance */
            ifnonnull 17
        16: .line 459
            iconst_0
            ireturn
        17: .line 461
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 4 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 5 /* root */
        18: .line 465
      StackMap locals:
      StackMap stack:
            aload 3 /* nodeRoot */
            ifnull 20
            aload 3 /* nodeRoot */
            aload 5 /* root */
            if_acmpeq 20
        19: .line 466
            new java.lang.IllegalArgumentException
            dup
            ldc "The node %s belongs to a root %s, which is different from the current root %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* node */
            aastore
            dup
            iconst_1
            aload 3 /* nodeRoot */
            aastore
            dup
            iconst_2
            aload 5 /* root */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 468
      StackMap locals:
      StackMap stack:
            aload 4 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 6 /* callNode */
        start local 6 // com.oracle.truffle.api.nodes.Node callNode
        21: .line 469
            aload 6 /* callNode */
            ifnonnull 25
        22: .line 470
            aload 1 /* node */
            astore 6 /* callNode */
        23: .line 471
            aload 6 /* callNode */
            ifnonnull 25
        24: .line 473
            aload 5 /* root */
            astore 6 /* callNode */
        25: .line 476
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 1 /* node */
            ifnull 27
            aload 1 /* node */
            aload 6 /* callNode */
            if_acmpeq 27
        26: .line 477
            new java.lang.IllegalArgumentException
            dup
            ldc "The node %s does not match the current known call node %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* node */
            aastore
            dup
            iconst_1
            aload 6 /* callNode */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 479
      StackMap locals:
      StackMap stack:
            aload 6 /* callNode */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentableNode.findInstrumentableParent:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            astore 7 /* icallNode */
        start local 7 // com.oracle.truffle.api.nodes.Node icallNode
        28: .line 480
            aload 7 /* icallNode */
            ifnull 30
        29: .line 481
            aload 7 /* icallNode */
            astore 6 /* callNode */
        30: .line 483
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 4 /* frameInstance */
            getstatic com.oracle.truffle.api.frame.FrameInstance$FrameAccess.READ_WRITE:Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getFrame:(Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;)Lcom/oracle/truffle/api/frame/Frame;
            invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            astore 8 /* frame */
        start local 8 // com.oracle.truffle.api.frame.MaterializedFrame frame
        31: .line 484
            aload 6 /* callNode */
            aconst_null
            invokestatic com.oracle.truffle.api.debug.SuspendedContext.create:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/ThreadDeath;)Lcom/oracle/truffle/api/debug/SuspendedContext;
            astore 9 /* context */
        start local 9 // com.oracle.truffle.api.debug.SuspendedContext context
        32: .line 485
            aload 0 /* this */
            aload 9 /* context */
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 8 /* frame */
            aconst_null
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
            pop
        33: .line 486
            iconst_1
            ireturn
        end local 9 // com.oracle.truffle.api.debug.SuspendedContext context
        end local 8 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 7 // com.oracle.truffle.api.nodes.Node icallNode
        end local 6 // com.oracle.truffle.api.nodes.Node callNode
        end local 5 // com.oracle.truffle.api.nodes.RootNode root
        end local 4 // com.oracle.truffle.api.frame.FrameInstance frameInstance
        end local 3 // com.oracle.truffle.api.nodes.RootNode nodeRoot
        end local 2 // com.oracle.truffle.api.debug.SuspendedEvent event
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   34     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   34     1           node  Lcom/oracle/truffle/api/nodes/Node;
            1   34     2          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            4   34     3       nodeRoot  Lcom/oracle/truffle/api/nodes/RootNode;
            9   34     4  frameInstance  Lcom/oracle/truffle/api/frame/FrameInstance;
           12   34     5           root  Lcom/oracle/truffle/api/nodes/RootNode;
           21   34     6       callNode  Lcom/oracle/truffle/api/nodes/Node;
           28   34     7      icallNode  Lcom/oracle/truffle/api/nodes/Node;
           31   34     8          frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
           32   34     9        context  Lcom/oracle/truffle/api/debug/SuspendedContext;
    MethodParameters:
      Name  Flags
      node  

  public void suspend(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Thread t
         0: .line 496
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 497
            aload 0 /* this */
            ldc "suspend thread %s "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* t */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 500
            new java.lang.IllegalStateException
            dup
            ldc "session closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
         5: .line 504
            return
        end local 1 // java.lang.Thread t
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    6     1     t  Ljava/lang/Thread;
    MethodParameters:
      Name  Flags
      t     

  public synchronized void suspendAll();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 514
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 515
            aload 0 /* this */
            ldc "suspend all threads"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 518
            new java.lang.IllegalStateException
            dup
            ldc "session closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
         5: .line 523
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
            invokevirtual java.util.concurrent.ConcurrentHashMap$KeySetView.iterator:()Ljava/util/Iterator;
            astore 2
            goto 11
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
      StackMap stack:
         6: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 1 /* t */
        start local 1 // java.lang.Thread t
         7: .line 524
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* t */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SteppingStrategy
            astore 3 /* s */
        start local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
         8: .line 525
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 9
            aload 3 /* s */
            ifnonnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 526
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.lang.Thread java.util.Iterator com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            aload 3 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isDone:()Z
            ifne 10
            aload 3 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isConsumed:()Z
            ifeq 11
        10: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            iconst_0
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
        end local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 1 // java.lang.Thread t
        11: .line 523
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 530
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
        13: .line 531
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            7   11     1     t  Ljava/lang/Thread;
            8   11     3     s  Lcom/oracle/truffle/api/debug/SteppingStrategy;

  public synchronized void resumeAll();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 539
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 540
            aload 0 /* this */
            ldc "resume all threads"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 543
            new java.lang.IllegalStateException
            dup
            ldc "session closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.clearStrategies:()V
         5: .line 547
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  public synchronized void resume(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Thread t
         0: .line 557
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 558
            aload 0 /* this */
            ldc "resume threads"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* t */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 561
            new java.lang.IllegalStateException
            dup
            ldc "session closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createContinue:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
         5: .line 565
            return
        end local 1 // java.lang.Thread t
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    6     1     t  Ljava/lang/Thread;
    MethodParameters:
      Name  Flags
      t     

  private synchronized void setSteppingStrategy(java.lang.Thread, com.oracle.truffle.api.debug.SteppingStrategy, boolean);
    descriptor: (Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Thread thread
        start local 2 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        start local 3 // boolean updateStepping
         0: .line 568
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 2
         1: .line 569
            return
         2: .line 571
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 3
            aload 2 /* strategy */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* thread */
            aload 2 /* strategy */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SteppingStrategy
            astore 4 /* oldStrategy */
        start local 4 // com.oracle.truffle.api.debug.SteppingStrategy oldStrategy
         4: .line 573
            aload 4 /* oldStrategy */
            aload 2 /* strategy */
            if_acmpeq 9
         5: .line 574
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 7
         6: .line 575
            aload 0 /* this */
            ldc "set stepping for thread: %s with strategy: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* thread */
            aastore
            dup
            iconst_1
            aload 2 /* strategy */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 577
      StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            iload 3 /* updateStepping */
            ifeq 9
         8: .line 578
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
         9: .line 581
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.debug.SteppingStrategy oldStrategy
        end local 3 // boolean updateStepping
        end local 2 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   10     1          thread  Ljava/lang/Thread;
            0   10     2        strategy  Lcom/oracle/truffle/api/debug/SteppingStrategy;
            0   10     3  updateStepping  Z
            4   10     4     oldStrategy  Lcom/oracle/truffle/api/debug/SteppingStrategy;
    MethodParameters:
                Name  Flags
      thread          
      strategy        
      updateStepping  

  private synchronized void clearStrategies();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 584
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
         1: .line 585
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
         2: .line 586
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         3: .line 587
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
         4: .line 588
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  private com.oracle.truffle.api.debug.SteppingStrategy getSteppingStrategy(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Thread value
         0: .line 591
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* value */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SteppingStrategy
            areturn
        end local 1 // java.lang.Thread value
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1  value  Ljava/lang/Thread;
    MethodParameters:
       Name  Flags
      value  

  private void updateStepping();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 595
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 1 /* needsStepping */
        start local 1 // boolean needsStepping
         4: .line 598
            iload 1 /* needsStepping */
            ifne 13
         5: .line 600
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
            invokevirtual java.util.concurrent.ConcurrentHashMap$KeySetView.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 2 /* t */
        start local 2 // java.lang.Thread t
         7: .line 601
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 2 /* t */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SteppingStrategy
            astore 4 /* s */
        start local 4 // com.oracle.truffle.api.debug.SteppingStrategy s
         8: .line 602
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 9
            aload 4 /* s */
            ifnonnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 603
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.lang.Thread java.util.Iterator com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            aload 4 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isDone:()Z
            ifne 12
        10: .line 604
            iconst_1
            istore 1 /* needsStepping */
        11: .line 605
            goto 13
        end local 4 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 2 // java.lang.Thread t
        12: .line 600
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        13: .line 610
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.stepping:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            iload 1 /* needsStepping */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
        14: .line 611
            return
        end local 1 // boolean needsStepping
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            4   15     1  needsStepping  Z
            7   12     2              t  Ljava/lang/Thread;
            8   12     4              s  Lcom/oracle/truffle/api/debug/SteppingStrategy;

  void setThreadSuspendEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // boolean enabled
         0: .line 615
            iload 1 /* enabled */
            ifne 3
         1: .line 617
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
            getstatic com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.DISABLED:Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         2: .line 618
            goto 4
         3: .line 619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         4: .line 621
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean enabled
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    5     1  enabled  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      enabled  

  private void addBindings(boolean, java.util.function.Predicate<com.oracle.truffle.api.source.Source>);
    descriptor: (ZLjava/util/function/Predicate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // boolean includeInternalCode
        start local 2 // java.util.function.Predicate sFilter
         0: .line 624
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnonnull 21
         1: .line 625
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 18
         2: .line 626
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_1
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate
      StackMap stack: int int
         4: iadd
            anewarray java.lang.Class
            astore 3 /* syntaxTags */
        start local 3 // java.lang.Class[] syntaxTags
         5: .line 627
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 628
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate java.lang.Class[] int top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SourceElement
            astore 5 /* element */
        start local 5 // com.oracle.truffle.api.debug.SourceElement element
         8: .line 629
            aload 3 /* syntaxTags */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 5 /* element */
            invokevirtual com.oracle.truffle.api.debug.SourceElement.getTag:()Ljava/lang/Class;
            aastore
        end local 5 // com.oracle.truffle.api.debug.SourceElement element
         9: .line 628
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 631
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 11
            iload 4 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            if_icmpeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 632
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
            ifne 13
        12: .line 633
            aload 3 /* syntaxTags */
            iload 4 /* i */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            aastore
        13: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* includeInternalCode */
            aload 2 /* sFilter */
            new com.oracle.truffle.api.debug.DebuggerSession$3
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$3.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        14: .line 645
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.hasExpressionElement:Z
            aload 3 /* syntaxTags */
        15: .line 635
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.createBinding:(ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
        16: .line 646
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int i
        end local 3 // java.lang.Class[] syntaxTags
        17: .line 647
            goto 21
        18: .line 649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* includeInternalCode */
            aload 2 /* sFilter */
            new com.oracle.truffle.api.debug.DebuggerSession$4
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$4.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        19: .line 657
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            aastore
        20: .line 649
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.createBinding:(ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
        21: .line 660
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.function.Predicate sFilter
        end local 1 // boolean includeInternalCode
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   22     1  includeInternalCode  Z
            0   22     2              sFilter  Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
            5   17     3           syntaxTags  [Ljava/lang/Class;
            6   17     4                    i  I
            8    9     5              element  Lcom/oracle/truffle/api/debug/SourceElement;
    Signature: (ZLjava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;)V
    MethodParameters:
                     Name  Flags
      includeInternalCode  
      sFilter              

  private com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> createBinding(boolean, java.util.function.Predicate<com.oracle.truffle.api.source.Source>, com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory, boolean, java.lang.Class<?>[]);
    descriptor: (ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // boolean includeInternalCode
        start local 2 // java.util.function.Predicate sFilter
        start local 3 // com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory factory
        start local 4 // boolean onInput
        start local 5 // java.lang.Class[] tags
         0: .line 664
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            aload 5 /* tags */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            astore 6 /* builder */
        start local 6 // com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder builder
         1: .line 665
            aload 6 /* builder */
            iload 1 /* includeInternalCode */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.includeInternal:(Z)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            pop
         2: .line 666
            aload 2 /* sFilter */
            ifnull 4
         3: .line 667
            aload 6 /* builder */
            new com.oracle.truffle.api.debug.DebuggerSession$5
            dup
            aload 0 /* this */
            aload 2 /* sFilter */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$5.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/util/function/Predicate;)V
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.sourceIs:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$SourcePredicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            pop
         4: .line 674
      StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder
      StackMap stack:
            aload 6 /* builder */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            astore 7 /* ssf */
        start local 7 // com.oracle.truffle.api.instrumentation.SourceSectionFilter ssf
         5: .line 675
            iload 4 /* onInput */
            ifeq 7
         6: .line 676
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 7 /* ssf */
            aload 7 /* ssf */
            aload 3 /* 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
         7: .line 678
      StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 7 /* ssf */
            aload 3 /* factory */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            areturn
        end local 7 // com.oracle.truffle.api.instrumentation.SourceSectionFilter ssf
        end local 6 // com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder builder
        end local 5 // java.lang.Class[] tags
        end local 4 // boolean onInput
        end local 3 // com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory factory
        end local 2 // java.util.function.Predicate sFilter
        end local 1 // boolean includeInternalCode
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    8     1  includeInternalCode  Z
            0    8     2              sFilter  Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
            0    8     3              factory  Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;
            0    8     4              onInput  Z
            0    8     5                 tags  [Ljava/lang/Class;
            1    8     6              builder  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            5    8     7                  ssf  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    Signature: (ZLjava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class<*>;)Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;
    MethodParameters:
                     Name  Flags
      includeInternalCode  
      sFilter              
      factory              
      onInput              
      tags                 

  private void removeBindings();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 683
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            ifnull 7
         2: .line 685
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 686
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
         4: .line 687
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
         5: .line 688
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 7
         6: .line 689
            aload 0 /* this */
            ldc "disabled stepping"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 692
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;

  java.util.Set<com.oracle.truffle.api.debug.SourceElement> getSourceElements();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 695
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
    Signature: ()Ljava/util/Set<Lcom/oracle/truffle/api/debug/SourceElement;>;

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 704
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 2
         1: .line 705
            aload 0 /* this */
            ldc "close session"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         3: .line 708
            new java.lang.IllegalStateException
            dup
            ldc "session already closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.clearStrategies:()V
         5: .line 712
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.removeBindings:()V
         6: .line 713
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 1 /* breakpoint */
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         8: .line 714
            aload 1 /* breakpoint */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.sessionClosed:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         9: .line 713
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 716
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
        11: .line 717
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        12: .line 718
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.Debugger.disposedSession:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        13: .line 719
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
        14: .line 720
            return
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            8    9     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;

  public java.util.List<com.oracle.truffle.api.debug.Breakpoint> getBreakpoints();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 733
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 2
         1: .line 734
            new java.lang.IllegalStateException
            dup
            ldc "session already closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            dup
            astore 2
            monitorenter
         3: .line 741
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* b */
        start local 1 // java.util.List b
         4: .line 738
            aload 2
            monitorexit
         5: goto 8
        end local 1 // java.util.List b
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.List
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
        start local 1 // java.util.List b
         8: .line 743
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.List
      StackMap stack:
            aload 1 /* b */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 1 // java.util.List b
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            4    6     1     b  Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
            8    9     1     b  Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;

  void visitBreakpoints(java.util.function.Consumer<com.oracle.truffle.api.debug.Breakpoint>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.util.function.Consumer consumer
         0: .line 747
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            dup
            astore 2
            monitorenter
         1: .line 748
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.function.Consumer java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 3 /* b */
        start local 3 // com.oracle.truffle.api.debug.Breakpoint b
         3: .line 749
            aload 1 /* consumer */
            aload 3 /* b */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        end local 3 // com.oracle.truffle.api.debug.Breakpoint b
         4: .line 748
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 747
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.function.Consumer java.util.List
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 752
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.Consumer consumer
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   10     1  consumer  Ljava/util/function/Consumer<Lcom/oracle/truffle/api/debug/Breakpoint;>;
            3    4     3         b  Lcom/oracle/truffle/api/debug/Breakpoint;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Signature: (Ljava/util/function/Consumer<Lcom/oracle/truffle/api/debug/Breakpoint;>;)V
    MethodParameters:
          Name  Flags
      consumer  

  public void setBreakpointsActive(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // boolean active
         0: .line 766
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.VALUES:[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top int int com.oracle.truffle.api.debug.Breakpoint$Kind[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* kind */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint$Kind kind
         2: .line 767
            aload 0 /* this */
            aload 2 /* kind */
            iload 1 /* active */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
        end local 2 // com.oracle.truffle.api.debug.Breakpoint$Kind kind
         3: .line 766
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 769
            return
        end local 1 // boolean active
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    6     1  active  Z
            2    3     2    kind  Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      active  

  public void setBreakpointsActive(com.oracle.truffle.api.debug.Breakpoint$Kind, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind breakpointKind
        start local 2 // boolean active
         0: .line 782
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:()[I
            aload 1 /* breakpointKind */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 5
                    2: 1
                    3: 3
              default: 7
          }
         1: .line 784
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            iload 2 /* active */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
         2: .line 785
            goto 9
         3: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            iload 2 /* active */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
         4: .line 788
            goto 9
         5: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            iload 2 /* active */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
         6: .line 791
            goto 9
         7: .line 793
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         8: .line 794
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unhandled breakpoint kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* breakpointKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 796
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean active
        end local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind breakpointKind
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   10     1  breakpointKind  Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            0   10     2          active  Z
    MethodParameters:
                Name  Flags
      breakpointKind  
      active          

  public boolean isBreakpointsActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
         0: .line 807
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.VALUES:[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top int int com.oracle.truffle.api.debug.Breakpoint$Kind[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* kind */
        start local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind kind
         2: .line 808
            aload 0 /* this */
            aload 1 /* kind */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
            ifeq 4
         3: .line 809
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind kind
         4: .line 807
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 812
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            2    4     1  kind  Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isBreakpointsActive(com.oracle.truffle.api.debug.Breakpoint$Kind);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind breakpointKind
         0: .line 823
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:()[I
            aload 1 /* breakpointKind */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 3
                    2: 1
                    3: 2
              default: 4
          }
         1: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
            ireturn
         2: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
            ireturn
         3: .line 829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
            ireturn
         4: .line 831
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         5: .line 832
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unhandled breakpoint kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* breakpointKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.truffle.api.debug.Breakpoint$Kind breakpointKind
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    6     1  breakpointKind  Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
    MethodParameters:
                Name  Flags
      breakpointKind  

  public synchronized com.oracle.truffle.api.debug.Breakpoint install(com.oracle.truffle.api.debug.Breakpoint);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         0: .line 850
            aload 0 /* this */
            aload 1 /* breakpoint */
            iconst_0
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;Z)V
         1: .line 851
            aload 1 /* breakpoint */
            areturn
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
    MethodParameters:
            Name  Flags
      breakpoint  

  synchronized void install(com.oracle.truffle.api.debug.Breakpoint, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        start local 2 // boolean global
         0: .line 855
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 4
         1: .line 856
            iload 2 /* global */
            ifne 3
         2: .line 857
            new java.lang.IllegalStateException
            dup
            ldc "Debugger session is already closed. Cannot install new breakpoints."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 859
      StackMap locals:
      StackMap stack:
            return
         4: .line 862
      StackMap locals:
      StackMap stack:
            iload 2 /* global */
            ifne 8
         5: .line 863
            aload 1 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolvable:()Z
            ifeq 8
            aload 1 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            ifne 8
         6: .line 864
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            aload 1 /* breakpoint */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         7: .line 865
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
         8: .line 868
      StackMap locals:
      StackMap stack:
            aload 1 /* breakpoint */
            aload 0 /* this */
            iload 2 /* global */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Breakpoint int
      StackMap stack: com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.api.debug.DebuggerSession
         9: iconst_1
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Breakpoint int
      StackMap stack: com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.api.debug.DebuggerSession int
        10: invokevirtual com.oracle.truffle.api.debug.Breakpoint.install:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Z
            ifne 14
        11: .line 869
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            aload 1 /* breakpoint */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            pop
        12: .line 870
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
        13: .line 871
            return
        14: .line 873
      StackMap locals:
      StackMap stack:
            iload 2 /* global */
            ifne 16
        15: .line 874
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            aload 1 /* breakpoint */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 876
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 18
        17: .line 877
            aload 0 /* this */
            ldc "installed session breakpoint %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* breakpoint */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        18: .line 879
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean global
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   19     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            0   19     2      global  Z
    MethodParameters:
            Name  Flags
      breakpoint  
      global      

  private void resolveUnresolvedBreakpoints(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 882
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
            ifeq 2
         1: .line 883
            return
         2: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         3: .line 886
            aload 2 /* sourceSection */
            ifnull 10
         4: .line 887
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 3 /* source */
        start local 3 // com.oracle.truffle.api.source.Source source
         5: .line 888
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.Source top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Breakpoint
            astore 4 /* breakpoint */
        start local 4 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         7: .line 889
            aload 4 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isEnabled:()Z
            ifeq 9
         8: .line 890
            aload 4 /* breakpoint */
            aload 3 /* source */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.doResolve:(Lcom/oracle/truffle/api/source/Source;)V
        end local 4 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         9: .line 888
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 3 // com.oracle.truffle.api.source.Source source
        10: .line 894
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   11     1           node  Lcom/oracle/truffle/api/nodes/Node;
            3   11     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            5   10     3         source  Lcom/oracle/truffle/api/source/Source;
            7    9     4     breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
    MethodParameters:
      Name  Flags
      node  

  void breakpointResolved(com.oracle.truffle.api.debug.Breakpoint);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         0: .line 897
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 1
            aload 1 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 898
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            aload 1 /* breakpoint */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 899
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
         3: .line 900
            return
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    4     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
    MethodParameters:
            Name  Flags
      breakpoint  

  synchronized void disposeBreakpoint(com.oracle.truffle.api.debug.Breakpoint);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         0: .line 903
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
            aload 1 /* breakpoint */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 904
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 3
         2: .line 905
            aload 0 /* this */
            ldc "disposed session breakpoint %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* breakpoint */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 907
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    4     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
    MethodParameters:
            Name  Flags
      breakpoint  

  public void setAsynchronousStackDepth(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // int depth
         0: .line 926
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            iload 1 /* depth */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.setAsynchronousStackDepth:(I)V
         1: .line 927
            return
        end local 1 // int depth
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1  depth  I
    MethodParameters:
       Name  Flags
      depth  

  public void setContextsListener(com.oracle.truffle.api.debug.DebugContextsListener, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugContextsListener;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.DebugContextsListener listener
        start local 2 // boolean includeActiveContexts
         0: .line 940
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            aload 1 /* listener */
            iload 2 /* includeActiveContexts */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.setContextsListener:(Lcom/oracle/truffle/api/debug/DebugContextsListener;Z)V
         1: .line 941
            return
        end local 2 // boolean includeActiveContexts
        end local 1 // com.oracle.truffle.api.debug.DebugContextsListener listener
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1               listener  Lcom/oracle/truffle/api/debug/DebugContextsListener;
            0    2     2  includeActiveContexts  Z
    MethodParameters:
                       Name  Flags
      listener               
      includeActiveContexts  

  public void setThreadsListener(com.oracle.truffle.api.debug.DebugThreadsListener, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugThreadsListener;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.DebugThreadsListener listener
        start local 2 // boolean includeInitializedThreads
         0: .line 954
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            aload 1 /* listener */
            iload 2 /* includeInitializedThreads */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.setThreadsListener:(Lcom/oracle/truffle/api/debug/DebugThreadsListener;Z)V
         1: .line 955
            return
        end local 2 // boolean includeInitializedThreads
        end local 1 // com.oracle.truffle.api.debug.DebugThreadsListener listener
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1                   listener  Lcom/oracle/truffle/api/debug/DebugThreadsListener;
            0    2     2  includeInitializedThreads  Z
    MethodParameters:
                           Name  Flags
      listener                   
      includeInitializedThreads  

  public void setSourcePath(java.lang.Iterable<java.net.URI>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Iterable uris
         0: .line 970
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
            aload 1 /* uris */
            invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.setSourcePath:(Ljava/lang/Iterable;)V
         1: .line 971
            return
        end local 1 // java.lang.Iterable uris
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    2     1  uris  Ljava/lang/Iterable<Ljava/net/URI;>;
    Signature: (Ljava/lang/Iterable<Ljava/net/URI;>;)V
    MethodParameters:
      Name  Flags
      uris  

  public com.oracle.truffle.api.source.Source resolveSource(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/source/Source;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 984
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/source/Source;
            areturn
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1  source  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
        Name  Flags
      source  

  com.oracle.truffle.api.source.SourceSection resolveSection(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.source.SourceSection section
         0: .line 991
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 1 // com.oracle.truffle.api.source.SourceSection section
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1  section  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
         Name  Flags
      section  

  com.oracle.truffle.api.source.SourceSection resolveSection(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 995
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.debug.DebugSourcesResolver.findEncapsulatedSourceSection:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  java.lang.Object notifyCallback(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, java.lang.Object, com.oracle.truffle.api.debug.DebugException, com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=15, locals=16, args_size=9
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        start local 2 // com.oracle.truffle.api.debug.DebuggerNode source
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 4 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 5 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        start local 6 // java.lang.Object returnValue
        start local 7 // com.oracle.truffle.api.debug.DebugException exception
        start local 8 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure conditionFailure
         0: .line 1002
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
            astore 9 /* suspensionDisabled */
        start local 9 // com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension suspensionDisabled
         1: .line 1003
            aload 9 /* suspensionDisabled */
            ifnull 3
            aload 9 /* suspensionDisabled */
            getfield com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.enabled:Z
            ifne 3
         2: .line 1004
            aload 6 /* returnValue */
            areturn
         3: .line 1007
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
      StackMap stack:
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isStepNode:()Z
            ifeq 6
         4: .line 1008
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
            ifeq 6
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.isLanguageContextInitialized:()Z
            ifne 6
         5: .line 1009
            aload 6 /* returnValue */
            areturn
         6: .line 1012
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 10 /* currentThread */
        start local 10 // java.lang.Thread currentThread
         7: .line 1013
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* currentThread */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SuspendedEvent
            astore 11 /* event */
        start local 11 // com.oracle.truffle.api.debug.SuspendedEvent event
         8: .line 1014
            aload 11 /* event */
            ifnull 12
         9: .line 1015
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 11
        10: .line 1016
            aload 0 /* this */
            ldc "ignored suspended reason: recursive from source:%s context:%s location:%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* source */
            aastore
            dup
            iconst_1
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            aastore
            dup
            iconst_2
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 1019
      StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
      StackMap stack:
            aload 6 /* returnValue */
            areturn
        12: .line 1022
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.consumeIsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Z
            ifeq 16
        13: .line 1023
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 15
        14: .line 1024
            aload 0 /* this */
            ldc "ignored suspended reason: duplicate from source:%s context:%s location:%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* source */
            aastore
            dup
            iconst_1
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            aastore
            dup
            iconst_2
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        15: .line 1026
      StackMap locals:
      StackMap stack:
            aload 6 /* returnValue */
            areturn
        16: .line 1032
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* source */
            aload 4 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.collectDebuggerNodes:(Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
            astore 12 /* nodes */
        start local 12 // java.util.List nodes
        17: .line 1033
            aload 12 /* nodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 22
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
      StackMap stack:
        18: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 13 /* node */
        start local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        19: .line 1034
            aload 13 /* node */
            aload 2 /* source */
            if_acmpne 21
        20: .line 1036
            goto 22
        21: .line 1038
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator
      StackMap stack:
            aload 13 /* node */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.markAsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        end local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        22: .line 1033
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        23: .line 1041
            aload 0 /* this */
            aload 10 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* s */
        start local 13 // com.oracle.truffle.api.debug.SteppingStrategy s
        24: .line 1042
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
            ifeq 34
        25: .line 1043
            aload 0 /* this */
            dup
            astore 14
            monitorenter
        26: .line 1045
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
            ifeq 30
        27: .line 1046
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* s */
        28: .line 1047
            aload 0 /* this */
            aload 10 /* currentThread */
            aload 13 /* s */
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
        29: .line 1048
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
        30: .line 1043
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack:
            aload 14
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 14
            monitorexit
        33: athrow
        34: .line 1053
      StackMap locals:
      StackMap stack:
            aload 13 /* s */
            ifnonnull 36
        35: .line 1055
            aload 0 /* this */
            aload 10 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyNewThread:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* s */
        36: .line 1058
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 14 /* breakpointFailures */
        start local 14 // java.util.Map breakpointFailures
        37: .line 1059
            aload 8 /* conditionFailure */
            ifnull 43
        38: .line 1060
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 14 /* breakpointFailures */
        39: .line 1061
            aload 8 /* conditionFailure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* fb */
        start local 15 // com.oracle.truffle.api.debug.Breakpoint fb
        40: .line 1062
            aload 15 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
            ifeq 42
        41: .line 1063
            aload 15 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* fb */
        42: .line 1065
      StackMap locals: java.util.Map com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 14 /* breakpointFailures */
            aload 15 /* fb */
            aload 8 /* conditionFailure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 15 // com.oracle.truffle.api.debug.Breakpoint fb
        43: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 12 /* nodes */
            aload 13 /* s */
            aload 2 /* source */
            aload 3 /* frame */
            aload 4 /* suspendAnchor */
        44: .line 1069
            aload 5 /* inputValuesProvider */
            aload 6 /* returnValue */
            aload 7 /* exception */
            aload 14 /* breakpointFailures */
        45: .line 1070
            new com.oracle.truffle.api.debug.DebuggerSession$6
            dup
            aload 0 /* this */
            aload 2 /* source */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$6.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/debug/DebuggerNode;)V
        46: .line 1068
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.processBreakpointsAndStep:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
            astore 15 /* newReturnValue */
        start local 15 // java.lang.Object newReturnValue
        47: .line 1076
            aload 15 /* newReturnValue */
            areturn
        end local 15 // java.lang.Object newReturnValue
        end local 14 // java.util.Map breakpointFailures
        end local 13 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 12 // java.util.List nodes
        end local 11 // com.oracle.truffle.api.debug.SuspendedEvent event
        end local 10 // java.lang.Thread currentThread
        end local 9 // com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension suspensionDisabled
        end local 8 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure conditionFailure
        end local 7 // com.oracle.truffle.api.debug.DebugException exception
        end local 6 // java.lang.Object returnValue
        end local 5 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        end local 4 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // com.oracle.truffle.api.debug.DebuggerNode source
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   48     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   48     1              context  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0   48     2               source  Lcom/oracle/truffle/api/debug/DebuggerNode;
            0   48     3                frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   48     4        suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0   48     5  inputValuesProvider  Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
            0   48     6          returnValue  Ljava/lang/Object;
            0   48     7            exception  Lcom/oracle/truffle/api/debug/DebugException;
            0   48     8     conditionFailure  Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
            1   48     9   suspensionDisabled  Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
            7   48    10        currentThread  Ljava/lang/Thread;
            8   48    11                event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
           17   48    12                nodes  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
           19   22    13                 node  Lcom/oracle/truffle/api/debug/DebuggerNode;
           24   48    13                    s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
           37   48    14   breakpointFailures  Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
           40   43    15                   fb  Lcom/oracle/truffle/api/debug/Breakpoint;
           47   48    15       newReturnValue  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          26    31      32  any
          32    33      32  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                     Name  Flags
      context              
      source               
      frame                
      suspendAnchor        
      inputValuesProvider  
      returnValue          
      exception            
      conditionFailure     

  private static void clearFrame(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.RootNode root
        start local 1 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 1080
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            astore 2 /* descriptor */
        start local 2 // com.oracle.truffle.api.frame.FrameDescriptor descriptor
         1: .line 1081
            aload 0 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 2 /* descriptor */
            if_acmpne 7
         2: .line 1083
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getDefaultValue:()Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         3: .line 1084
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSlots:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.frame.FrameDescriptor java.lang.Object top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot
            astore 4 /* slot */
        start local 4 // com.oracle.truffle.api.frame.FrameSlot slot
         5: .line 1085
            aload 1 /* frame */
            aload 4 /* slot */
            aload 3 /* value */
            invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
        end local 4 // com.oracle.truffle.api.frame.FrameSlot slot
         6: .line 1084
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // java.lang.Object value
         7: .line 1088
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.frame.FrameDescriptor
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.frame.FrameDescriptor descriptor
        end local 1 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 0 // com.oracle.truffle.api.nodes.RootNode root
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        root  Lcom/oracle/truffle/api/nodes/RootNode;
            0    8     1       frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            1    8     2  descriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            3    7     3       value  Ljava/lang/Object;
            5    6     4        slot  Lcom/oracle/truffle/api/frame/FrameSlot;
    MethodParameters:
       Name  Flags
      root   
      frame  

  private void notifyUnwindCallback(com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode);
    descriptor: (Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 2 // com.oracle.truffle.api.debug.InsertableNode insertableNode
         0: .line 1091
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 3 /* currentThread */
        start local 3 // java.lang.Thread currentThread
         1: .line 1092
            aload 0 /* this */
            aload 3 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 4 /* s */
        start local 4 // com.oracle.truffle.api.debug.SteppingStrategy s
         2: .line 1094
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 3
            aload 4 /* s */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 1095
      StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 4
            aload 4 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isUnwind:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1096
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 5
            aload 4 /* s */
            aload 0 /* this */
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.step:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1097
      StackMap locals:
      StackMap stack:
            aload 4 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.consume:()V
         6: .line 1099
            aload 2 /* insertableNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            aload 1 /* frame */
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.clearFrame:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         7: .line 1101
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.findCurrentCaller:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
            astore 5 /* caller */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
         8: .line 1102
            aload 5 /* caller */
            getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.node:Lcom/oracle/truffle/api/nodes/Node;
            aload 4 /* s */
            checkcast com.oracle.truffle.api.debug.SteppingStrategy$Unwind
            getfield com.oracle.truffle.api.debug.SteppingStrategy$Unwind.unwind:Ljava/lang/ThreadDeath;
            invokestatic com.oracle.truffle.api.debug.SuspendedContext.create:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/ThreadDeath;)Lcom/oracle/truffle/api/debug/SuspendedContext;
            astore 6 /* context */
        start local 6 // com.oracle.truffle.api.debug.SuspendedContext context
         9: .line 1103
            aload 0 /* this */
            aload 6 /* context */
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 5 /* caller */
            getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
            aload 2 /* insertableNode */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
            pop
        10: .line 1104
            return
        end local 6 // com.oracle.truffle.api.debug.SuspendedContext context
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
        end local 4 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 3 // java.lang.Thread currentThread
        end local 2 // com.oracle.truffle.api.debug.InsertableNode insertableNode
        end local 1 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   11     1           frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   11     2  insertableNode  Lcom/oracle/truffle/api/debug/InsertableNode;
            1   11     3   currentThread  Ljava/lang/Thread;
            2   11     4               s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
            8   11     5          caller  Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
            9   11     6         context  Lcom/oracle/truffle/api/debug/SuspendedContext;
    MethodParameters:
                Name  Flags
      frame           
      insertableNode  

  static com.oracle.truffle.api.debug.DebuggerSession$Caller findCurrentCaller(com.oracle.truffle.api.debug.DebuggerSession, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession session
        start local 1 // boolean includeInternal
         0: .line 1107
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.debug.DebuggerSession$7
            dup
            aload 0 /* session */
            iload 1 /* includeInternal */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$7.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerSession$Caller
            areturn
        end local 1 // boolean includeInternal
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession session
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0          session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1  includeInternal  Z
    MethodParameters:
                 Name  Flags
      session          
      includeInternal  

  private java.lang.Object notifyCallerReturn(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=6
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        start local 2 // com.oracle.truffle.api.debug.SteppingStrategy s
        start local 3 // com.oracle.truffle.api.debug.DebuggerNode source
        start local 4 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 5 // java.lang.Object returnValue
         0: .line 1134
            aload 3 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isStepNode:()Z
            ifeq 3
         1: .line 1135
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
            ifeq 3
            aload 3 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.isLanguageContextInitialized:()Z
            ifne 3
         2: .line 1136
            aload 5 /* returnValue */
            areturn
         3: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.findCurrentCaller:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
            astore 6 /* caller */
        start local 6 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
         4: .line 1141
            aload 6 /* caller */
            ifnonnull 6
         5: .line 1143
            aload 5 /* returnValue */
            areturn
         6: .line 1145
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$Caller
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 6 /* caller */
            aload 2 /* s */
            aload 3 /* source */
            aload 4 /* suspendAnchor */
            aload 5 /* returnValue */
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyAtCaller:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
        end local 5 // java.lang.Object returnValue
        end local 4 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 3 // com.oracle.truffle.api.debug.DebuggerNode source
        end local 2 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    7     1        context  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0    7     2              s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
            0    7     3         source  Lcom/oracle/truffle/api/debug/DebuggerNode;
            0    7     4  suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0    7     5    returnValue  Ljava/lang/Object;
            4    7     6         caller  Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
    MethodParameters:
               Name  Flags
      context        
      s              
      source         
      suspendAnchor  
      returnValue    

  java.lang.Object notifyAtCaller(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.DebuggerSession$Caller, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor, java.lang.Object, com.oracle.truffle.api.debug.DebugException, com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=15, locals=16, args_size=9
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        start local 2 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
        start local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
        start local 4 // com.oracle.truffle.api.debug.DebuggerNode source
        start local 5 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 6 // java.lang.Object returnValue
        start local 7 // com.oracle.truffle.api.debug.DebugException exception
        start local 8 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure conditionFailure
         0: .line 1150
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
            astore 9 /* suspensionDisabled */
        start local 9 // com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension suspensionDisabled
         1: .line 1151
            aload 9 /* suspensionDisabled */
            ifnull 3
            aload 9 /* suspensionDisabled */
            getfield com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.enabled:Z
            ifne 3
         2: .line 1152
            aload 6 /* returnValue */
            areturn
         3: .line 1155
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 10 /* currentThread */
        start local 10 // java.lang.Thread currentThread
         4: .line 1156
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* currentThread */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SuspendedEvent
            astore 11 /* event */
        start local 11 // com.oracle.truffle.api.debug.SuspendedEvent event
         5: .line 1157
            aload 11 /* event */
            ifnull 9
         6: .line 1158
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 8
         7: .line 1159
            aload 0 /* this */
            ldc "ignored suspended reason: recursive from source:%s context:%s location:%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* source */
            aastore
            dup
            iconst_1
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            aastore
            dup
            iconst_2
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 1162
      StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
      StackMap stack:
            aload 6 /* returnValue */
            areturn
         9: .line 1165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* caller */
            getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.node:Lcom/oracle/truffle/api/nodes/Node;
            aload 5 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.collectDebuggerNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
            astore 12 /* nodes */
        start local 12 // java.util.List nodes
        10: .line 1166
            aload 12 /* nodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 15
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 13 /* node */
        start local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        12: .line 1167
            aload 13 /* node */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* breakpoint */
        start local 15 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        13: .line 1168
            aload 15 /* breakpoint */
            ifnull 14
            aload 0 /* this */
            aload 15 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getKind:()Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
            ifeq 15
            aload 15 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getCondition:()Ljava/lang/String;
            ifnonnull 15
        14: .line 1171
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 6 /* returnValue */
            areturn
        end local 15 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        15: .line 1166
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 1175
            aload 12 /* nodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 13 /* node */
        start local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        18: .line 1176
            aload 13 /* node */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.markAsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
        end local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        19: .line 1175
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 1178
            aload 12 /* nodes */
            aload 4 /* source */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1180
            aload 3 /* s */
            astore 13 /* strategy */
        start local 13 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        22: .line 1181
            aload 13 /* strategy */
            ifnonnull 26
        23: .line 1182
            aload 0 /* this */
            aload 10 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* strategy */
        24: .line 1183
            aload 13 /* strategy */
            ifnonnull 26
        25: .line 1185
            aload 0 /* this */
            aload 10 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyNewThread:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* strategy */
        26: .line 1189
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            aconst_null
            astore 14 /* breakpointFailures */
        start local 14 // java.util.Map breakpointFailures
        27: .line 1190
            aload 8 /* conditionFailure */
            ifnull 33
        28: .line 1191
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 14 /* breakpointFailures */
        29: .line 1192
            aload 8 /* conditionFailure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* fb */
        start local 15 // com.oracle.truffle.api.debug.Breakpoint fb
        30: .line 1193
            aload 15 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
            ifeq 32
        31: .line 1194
            aload 15 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* fb */
        32: .line 1196
      StackMap locals: java.util.Map com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 14 /* breakpointFailures */
            aload 15 /* fb */
            aload 8 /* conditionFailure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 15 // com.oracle.truffle.api.debug.Breakpoint fb
        33: .line 1199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 12 /* nodes */
            aload 13 /* strategy */
            aload 4 /* source */
            aload 2 /* caller */
            getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
            aload 5 /* suspendAnchor */
            aconst_null
            aload 6 /* returnValue */
            aload 7 /* exception */
            aload 14 /* breakpointFailures */
        34: .line 1200
            new com.oracle.truffle.api.debug.DebuggerSession$8
            dup
            aload 0 /* this */
            aload 2 /* caller */
            invokespecial com.oracle.truffle.api.debug.DebuggerSession$8.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;)V
        35: .line 1199
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.processBreakpointsAndStep:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
            astore 15 /* newReturnValue */
        start local 15 // java.lang.Object newReturnValue
        36: .line 1206
            aload 15 /* newReturnValue */
            areturn
        end local 15 // java.lang.Object newReturnValue
        end local 14 // java.util.Map breakpointFailures
        end local 13 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        end local 12 // java.util.List nodes
        end local 11 // com.oracle.truffle.api.debug.SuspendedEvent event
        end local 10 // java.lang.Thread currentThread
        end local 9 // com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension suspensionDisabled
        end local 8 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure conditionFailure
        end local 7 // com.oracle.truffle.api.debug.DebugException exception
        end local 6 // java.lang.Object returnValue
        end local 5 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 4 // com.oracle.truffle.api.debug.DebuggerNode source
        end local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 2 // com.oracle.truffle.api.debug.DebuggerSession$Caller caller
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   37     0                this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   37     1             context  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0   37     2              caller  Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
            0   37     3                   s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
            0   37     4              source  Lcom/oracle/truffle/api/debug/DebuggerNode;
            0   37     5       suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0   37     6         returnValue  Ljava/lang/Object;
            0   37     7           exception  Lcom/oracle/truffle/api/debug/DebugException;
            0   37     8    conditionFailure  Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
            1   37     9  suspensionDisabled  Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
            4   37    10       currentThread  Ljava/lang/Thread;
            5   37    11               event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
           10   37    12               nodes  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
           12   15    13                node  Lcom/oracle/truffle/api/debug/DebuggerNode;
           13   15    15          breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
           18   19    13                node  Lcom/oracle/truffle/api/debug/DebuggerNode;
           22   37    13            strategy  Lcom/oracle/truffle/api/debug/SteppingStrategy;
           27   37    14  breakpointFailures  Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
           30   33    15                  fb  Lcom/oracle/truffle/api/debug/Breakpoint;
           36   37    15      newReturnValue  Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      context           
      caller            
      s                 
      source            
      suspendAnchor     
      returnValue       
      exception         
      conditionFailure  

  private  processBreakpointsAndStep(com.oracle.truffle.api.instrumentation.EventContext, java.util.List<com.oracle.truffle.api.debug.DebuggerNode>, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, , com.oracle.truffle.api.debug.DebugException, java.util.Map<com.oracle.truffle.api.debug.Breakpoint, java.lang.Throwable>, java.util.function.Supplier<com.oracle.truffle.api.debug.SuspendedContext>);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=19, args_size=12
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        start local 2 // java.util.List nodes
        start local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
        start local 4 // com.oracle.truffle.api.debug.DebuggerNode source
        start local 5 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 6 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 7 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        start local 8 // java.lang.Object returnValue
        start local 9 // com.oracle.truffle.api.debug.DebugException exception
        start local 10 // java.util.Map breakpointFailures
        start local 11 // java.util.function.Supplier contextSupplier
         0: .line 1213
            aconst_null
            astore 12 /* breaks */
        start local 12 // java.util.List breaks
         1: .line 1214
            aload 2 /* nodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 25
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 13 /* node */
        start local 13 // com.oracle.truffle.api.debug.DebuggerNode node
         3: .line 1215
            aload 13 /* node */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 15 /* breakpoint */
        start local 15 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         4: .line 1216
            aload 15 /* breakpoint */
            ifnull 25
            aload 0 /* this */
            aload 15 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getKind:()Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
            ifne 6
         5: .line 1217
            goto 25
         6: .line 1219
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            iconst_1
            istore 16 /* hit */
        start local 16 // boolean hit
         7: .line 1220
            aconst_null
            astore 17 /* failure */
        start local 17 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure failure
         8: .line 1222
            aload 15 /* breakpoint */
            aload 1 /* context */
            aload 4 /* source */
            aload 13 /* node */
            aload 5 /* frame */
            aload 9 /* exception */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.notifyIndirectHit:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/DebugException;)Z
            istore 16 /* hit */
         9: .line 1223
            goto 12
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint int com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
      StackMap stack: com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
        10: astore 18 /* e */
        start local 18 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure e
        11: .line 1224
            aload 18 /* e */
            astore 17 /* failure */
        end local 18 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure e
        12: .line 1226
      StackMap locals:
      StackMap stack:
            iload 16 /* hit */
            ifeq 18
        13: .line 1227
            aload 12 /* breaks */
            ifnonnull 15
        14: .line 1228
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* breaks */
        15: .line 1230
      StackMap locals:
      StackMap stack:
            aload 12 /* breaks */
            aload 15 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
            ifeq 16
            aload 15 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
            goto 17
      StackMap locals:
      StackMap stack: java.util.List
        16: aload 15 /* breakpoint */
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint int com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
      StackMap stack: java.util.List com.oracle.truffle.api.debug.Breakpoint
        17: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 1232
      StackMap locals:
      StackMap stack:
            aload 17 /* failure */
            ifnull 25
        19: .line 1233
            aload 10 /* breakpointFailures */
            ifnonnull 21
        20: .line 1234
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 10 /* breakpointFailures */
        21: .line 1236
      StackMap locals:
      StackMap stack:
            aload 17 /* failure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 18 /* fb */
        start local 18 // com.oracle.truffle.api.debug.Breakpoint fb
        22: .line 1237
            aload 18 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
            ifeq 24
        23: .line 1238
            aload 18 /* fb */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 18 /* fb */
        24: .line 1240
      StackMap locals: com.oracle.truffle.api.debug.Breakpoint
      StackMap stack:
            aload 10 /* breakpointFailures */
            aload 18 /* fb */
            aload 17 /* failure */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 18 // com.oracle.truffle.api.debug.Breakpoint fb
        end local 17 // com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure failure
        end local 16 // boolean hit
        end local 15 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 13 // com.oracle.truffle.api.debug.DebuggerNode node
        25: .line 1214
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        26: .line 1243
            aload 12 /* breaks */
            ifnonnull 28
        27: .line 1244
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 12 /* breaks */
        28: .line 1246
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List
      StackMap stack:
            aload 10 /* breakpointFailures */
            ifnonnull 30
        29: .line 1247
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 10 /* breakpointFailures */
        30: .line 1250
      StackMap locals:
      StackMap stack:
            aload 3 /* s */
            aload 0 /* this */
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            aload 6 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.step:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
            istore 13 /* hitStepping */
        start local 13 // boolean hitStepping
        31: .line 1251
            aload 12 /* breaks */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 32
            iconst_0
            goto 33
      StackMap locals: int
      StackMap stack:
        32: iconst_1
      StackMap locals:
      StackMap stack: int
        33: istore 14 /* hitBreakpoint */
        start local 14 // boolean hitBreakpoint
        34: .line 1252
            aload 8 /* returnValue */
            astore 15 /* newReturnValue */
        start local 15 // java.lang.Object newReturnValue
        35: .line 1253
            iload 13 /* hitStepping */
            ifne 36
            iload 14 /* hitBreakpoint */
            ifeq 41
        36: .line 1254
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 3 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.consume:()V
        37: .line 1255
            aload 0 /* this */
            aload 11 /* contextSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.SuspendedContext
            aload 6 /* suspendAnchor */
            aload 5 /* frame */
            aload 4 /* source */
            aload 7 /* inputValuesProvider */
            aload 8 /* returnValue */
            aload 9 /* exception */
            aload 12 /* breaks */
        38: .line 1256
            aload 10 /* breakpointFailures */
        39: .line 1255
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
            astore 15 /* newReturnValue */
        40: .line 1257
            goto 43
        41: .line 1258
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 43
        42: .line 1259
            aload 0 /* this */
            ldc "ignored suspended reason: strategy(%s) from source:%s context:%s location:%s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* s */
            aastore
            dup
            iconst_1
            aload 4 /* source */
            aastore
            dup
            iconst_2
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            aastore
            dup
            iconst_3
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        43: .line 1262
      StackMap locals:
      StackMap stack:
            aload 3 /* s */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
            ifeq 45
        44: .line 1263
            aload 0 /* this */
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.performKill:(Lcom/oracle/truffle/api/nodes/Node;)V
        45: .line 1265
      StackMap locals:
      StackMap stack:
            aload 15 /* newReturnValue */
            areturn
        end local 15 // java.lang.Object newReturnValue
        end local 14 // boolean hitBreakpoint
        end local 13 // boolean hitStepping
        end local 12 // java.util.List breaks
        end local 11 // java.util.function.Supplier contextSupplier
        end local 10 // java.util.Map breakpointFailures
        end local 9 // com.oracle.truffle.api.debug.DebugException exception
        end local 8 // java.lang.Object returnValue
        end local 7 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        end local 6 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 5 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 4 // com.oracle.truffle.api.debug.DebuggerNode source
        end local 3 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 2 // java.util.List nodes
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   46     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   46     1              context  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0   46     2                nodes  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
            0   46     3                    s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
            0   46     4               source  Lcom/oracle/truffle/api/debug/DebuggerNode;
            0   46     5                frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   46     6        suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0   46     7  inputValuesProvider  Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
            0   46     8          returnValue  Ljava/lang/Object;
            0   46     9            exception  Lcom/oracle/truffle/api/debug/DebugException;
            0   46    10   breakpointFailures  Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
            0   46    11      contextSupplier  Ljava/util/function/Supplier<Lcom/oracle/truffle/api/debug/SuspendedContext;>;
            1   46    12               breaks  Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
            3   25    13                 node  Lcom/oracle/truffle/api/debug/DebuggerNode;
            4   25    15           breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            7   25    16                  hit  Z
            8   25    17              failure  Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
           11   12    18                    e  Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
           22   25    18                   fb  Lcom/oracle/truffle/api/debug/Breakpoint;
           31   46    13          hitStepping  Z
           34   46    14        hitBreakpoint  Z
           35   46    15       newReturnValue  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           8     9      10  Class com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
    Signature: (Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;Ljava/util/function/Supplier<Lcom/oracle/truffle/api/debug/SuspendedContext;>;)Ljava/lang/Object;
    MethodParameters:
                     Name  Flags
      context              
      nodes                
      s                    
      source               
      frame                
      suspendAnchor        
      inputValuesProvider  
      returnValue          
      exception            
      breakpointFailures   
      contextSupplier      

  private java.lang.Object doSuspend(com.oracle.truffle.api.debug.SuspendedContext, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.SuspendedContext context
        start local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 4 // com.oracle.truffle.api.debug.InsertableNode insertableNode
         0: .line 1269
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* suspendAnchor */
            aload 3 /* frame */
            aload 4 /* insertableNode */
            aconst_null
            aconst_null
            aconst_null
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.api.debug.InsertableNode insertableNode
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 1 // com.oracle.truffle.api.debug.SuspendedContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    1     1         context  Lcom/oracle/truffle/api/debug/SuspendedContext;
            0    1     2   suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0    1     3           frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    1     4  insertableNode  Lcom/oracle/truffle/api/debug/InsertableNode;
    MethodParameters:
                Name  Flags
      context         
      suspendAnchor   
      frame           
      insertableNode  

  private  doSuspend(com.oracle.truffle.api.debug.SuspendedContext, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, , com.oracle.truffle.api.debug.DebugException, java.util.List<com.oracle.truffle.api.debug.Breakpoint>, java.util.Map<com.oracle.truffle.api.debug.Breakpoint, java.lang.Throwable>);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=15, args_size=10
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.SuspendedContext context
        start local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 4 // com.oracle.truffle.api.debug.InsertableNode insertableNode
        start local 5 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        start local 6 // java.lang.Object returnValue
        start local 7 // com.oracle.truffle.api.debug.DebugException exception
        start local 8 // java.util.List breaks
        start local 9 // java.util.Map conditionFailures
         0: .line 1275
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1276
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 10 /* currentThread */
        start local 10 // java.lang.Thread currentThread
         2: .line 1281
            new com.oracle.truffle.api.debug.SuspendedEvent
            dup
            aload 0 /* this */
            aload 10 /* currentThread */
            aload 1 /* context */
            aload 3 /* frame */
            aload 2 /* suspendAnchor */
            aload 4 /* insertableNode */
            aload 5 /* inputValuesProvider */
            aload 6 /* returnValue */
            aload 7 /* exception */
            aload 8 /* breaks */
            aload 9 /* conditionFailures */
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)V
            astore 11 /* suspendedEvent */
        start local 11 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
         3: .line 1282
            aload 7 /* exception */
            ifnull 5
         4: .line 1283
            aload 7 /* exception */
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.DebugException.setSuspendedEvent:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
         5: .line 1285
      StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* currentThread */
            aload 11 /* suspendedEvent */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1287
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.callback:Lcom/oracle/truffle/api/debug/SuspendedCallback;
            aload 11 /* suspendedEvent */
            invokeinterface com.oracle.truffle.api.debug.SuspendedCallback.onSuspend:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
         7: .line 1288
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 13
         9: .line 1289
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* currentThread */
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1290
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getReturnObject:()Ljava/lang/Object;
            astore 12 /* newReturnValue */
        start local 12 // java.lang.Object newReturnValue
        11: .line 1294
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.clearLeakingReferences:()V
        12: .line 1295
            aload 13
            athrow
        end local 12 // java.lang.Object newReturnValue
        13: .line 1289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* currentThread */
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1290
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getReturnObject:()Ljava/lang/Object;
            astore 12 /* newReturnValue */
        start local 12 // java.lang.Object newReturnValue
        15: .line 1294
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.clearLeakingReferences:()V
        16: .line 1296
            goto 19
        end local 12 // java.lang.Object newReturnValue
        end local 11 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.SuspendedContext com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.InsertableNode com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.List java.util.Map java.lang.Thread
      StackMap stack: java.lang.Throwable
        17: astore 13 /* t */
        start local 13 // java.lang.Throwable t
        18: .line 1298
            aload 13 /* t */
            athrow
        end local 13 // java.lang.Throwable t
        start local 11 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        start local 12 // java.lang.Object newReturnValue
        19: .line 1301
      StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
            ifeq 21
        20: .line 1303
            aload 12 /* newReturnValue */
            areturn
        21: .line 1306
      StackMap locals:
      StackMap stack:
            aload 11 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getNextStrategy:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 13 /* strategy */
        start local 13 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        22: .line 1307
            aload 13 /* strategy */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
            ifne 26
        23: .line 1310
            aload 0 /* this */
            aload 10 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 14 /* currentStrategy */
        start local 14 // com.oracle.truffle.api.debug.SteppingStrategy currentStrategy
        24: .line 1311
            aload 14 /* currentStrategy */
            ifnull 26
            aload 14 /* currentStrategy */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isConsumed:()Z
            ifne 26
        25: .line 1312
            aload 14 /* currentStrategy */
            astore 13 /* strategy */
        end local 14 // com.oracle.truffle.api.debug.SteppingStrategy currentStrategy
        26: .line 1315
      StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            aload 13 /* strategy */
            aload 1 /* context */
            aload 2 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.initialize:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)V
        27: .line 1317
            getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
            ifeq 29
        28: .line 1318
            aload 0 /* this */
            ldc "end suspend with strategy %s at %s location %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* strategy */
            aastore
            dup
            iconst_1
            aload 1 /* context */
            aastore
            dup
            iconst_2
            aload 2 /* suspendAnchor */
            aastore
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        29: .line 1321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* currentThread */
            aload 13 /* strategy */
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
        30: .line 1322
            aload 13 /* strategy */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
            ifeq 33
        31: .line 1323
            aload 0 /* this */
            aload 1 /* context */
            invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.performKill:(Lcom/oracle/truffle/api/nodes/Node;)V
        32: .line 1324
            goto 37
      StackMap locals:
      StackMap stack:
        33: aload 13 /* strategy */
            invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isUnwind:()Z
            ifeq 37
        34: .line 1325
            aload 1 /* context */
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
            invokeinterface com.oracle.truffle.api.debug.SuspendedContext.createUnwind:(Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Ljava/lang/ThreadDeath;
            astore 14 /* unwind */
        start local 14 // java.lang.ThreadDeath unwind
        35: .line 1326
            aload 13 /* strategy */
            checkcast com.oracle.truffle.api.debug.SteppingStrategy$Unwind
            aload 14 /* unwind */
            putfield com.oracle.truffle.api.debug.SteppingStrategy$Unwind.unwind:Ljava/lang/ThreadDeath;
        36: .line 1327
            aload 14 /* unwind */
            athrow
        end local 14 // java.lang.ThreadDeath unwind
        37: .line 1329
      StackMap locals:
      StackMap stack:
            aload 12 /* newReturnValue */
            areturn
        end local 13 // com.oracle.truffle.api.debug.SteppingStrategy strategy
        end local 12 // java.lang.Object newReturnValue
        end local 11 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        end local 10 // java.lang.Thread currentThread
        end local 9 // java.util.Map conditionFailures
        end local 8 // java.util.List breaks
        end local 7 // com.oracle.truffle.api.debug.DebugException exception
        end local 6 // java.lang.Object returnValue
        end local 5 // com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider inputValuesProvider
        end local 4 // com.oracle.truffle.api.debug.InsertableNode insertableNode
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 1 // com.oracle.truffle.api.debug.SuspendedContext context
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                 this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   38     1              context  Lcom/oracle/truffle/api/debug/SuspendedContext;
            0   38     2        suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            0   38     3                frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   38     4       insertableNode  Lcom/oracle/truffle/api/debug/InsertableNode;
            0   38     5  inputValuesProvider  Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
            0   38     6          returnValue  Ljava/lang/Object;
            0   38     7            exception  Lcom/oracle/truffle/api/debug/DebugException;
            0   38     8               breaks  Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
            0   38     9    conditionFailures  Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
            2   38    10        currentThread  Ljava/lang/Thread;
            3   17    11       suspendedEvent  Lcom/oracle/truffle/api/debug/SuspendedEvent;
           19   38    11       suspendedEvent  Lcom/oracle/truffle/api/debug/SuspendedEvent;
           11   13    12       newReturnValue  Ljava/lang/Object;
           15   17    12       newReturnValue  Ljava/lang/Object;
           19   38    12       newReturnValue  Ljava/lang/Object;
           18   19    13                    t  Ljava/lang/Throwable;
           22   38    13             strategy  Lcom/oracle/truffle/api/debug/SteppingStrategy;
           24   26    14      currentStrategy  Lcom/oracle/truffle/api/debug/SteppingStrategy;
           35   37    14               unwind  Ljava/lang/ThreadDeath;
      Exception table:
        from    to  target  type
           6     8       8  any
           2    16      17  Class java.lang.Throwable
    Signature: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;)Ljava/lang/Object;
    MethodParameters:
                     Name  Flags
      context              
      suspendAnchor        
      frame                
      insertableNode       
      inputValuesProvider  
      returnValue          
      exception            
      breaks               
      conditionFailures    

  private void performKill(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.nodes.Node location
         0: .line 1333
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1334
            new com.oracle.truffle.api.debug.KillException
            dup
            aload 1 /* location */
            invokespecial com.oracle.truffle.api.debug.KillException.<init>:(Lcom/oracle/truffle/api/nodes/Node;)V
            athrow
         2: .line 1336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger: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.getEnteredContext:()Lcom/oracle/truffle/api/TruffleContext;
            astore 2 /* truffleContext */
        start local 2 // com.oracle.truffle.api.TruffleContext truffleContext
         3: .line 1337
            aload 2 /* truffleContext */
            aload 1 /* location */
            ldc "Execution cancelled by a debugging session."
            invokevirtual com.oracle.truffle.api.TruffleContext.closeCancelled:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)V
        end local 2 // com.oracle.truffle.api.TruffleContext truffleContext
         4: .line 1339
            return
        end local 1 // com.oracle.truffle.api.nodes.Node location
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    5     1        location  Lcom/oracle/truffle/api/nodes/Node;
            3    4     2  truffleContext  Lcom/oracle/truffle/api/TruffleContext;
    MethodParameters:
          Name  Flags
      location  

  private java.util.List<com.oracle.truffle.api.debug.DebuggerNode> collectDebuggerNodes(com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.debug.DebuggerNode source
        start local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
         0: .line 1342
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.api.instrumentation.EventContext context
         1: .line 1343
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* nodes */
        start local 4 // java.util.List nodes
         2: .line 1344
            aload 4 /* nodes */
            aload 1 /* source */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1345
            aload 3 /* context */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.lookupExecutionEventNodes:(Ljava/util/Collection;)Ljava/util/Iterator;
            astore 5 /* nodesIterator */
        start local 5 // java.util.Iterator nodesIterator
         4: .line 1346
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 2 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.SuspendAnchor.equals:(Ljava/lang/Object;)Z
            ifeq 22
         5: .line 1348
            iconst_0
            istore 6 /* after */
        start local 6 // boolean after
         6: .line 1349
            goto 15
         7: .line 1350
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.instrumentation.EventContext java.util.List java.util.Iterator int
      StackMap stack:
            aload 5 /* nodesIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 7 /* node */
        start local 7 // com.oracle.truffle.api.debug.DebuggerNode node
         8: .line 1351
            iload 6 /* after */
            ifeq 12
         9: .line 1352
            aload 7 /* node */
            aload 2 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
            ifeq 15
        10: .line 1353
            aload 4 /* nodes */
            aload 7 /* node */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1355
            goto 15
        12: .line 1356
      StackMap locals: com.oracle.truffle.api.debug.DebuggerNode
      StackMap stack:
            aload 7 /* node */
            aload 1 /* source */
            if_acmpne 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* after */
        end local 7 // com.oracle.truffle.api.debug.DebuggerNode node
        15: .line 1349
      StackMap locals:
      StackMap stack:
            aload 5 /* nodesIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 6 // boolean after
        16: .line 1359
            goto 23
        17: .line 1362
      StackMap locals:
      StackMap stack:
            aload 5 /* nodesIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 6 /* node */
        start local 6 // com.oracle.truffle.api.debug.DebuggerNode node
        18: .line 1363
            aload 6 /* node */
            aload 1 /* source */
            if_acmpne 20
        19: .line 1364
            goto 23
        20: .line 1366
      StackMap locals: com.oracle.truffle.api.debug.DebuggerNode
      StackMap stack:
            aload 6 /* node */
            aload 2 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
            ifeq 22
        21: .line 1367
            aload 4 /* nodes */
            aload 6 /* node */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.api.debug.DebuggerNode node
        22: .line 1361
      StackMap locals:
      StackMap stack:
            aload 5 /* nodesIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        23: .line 1371
      StackMap locals:
      StackMap stack:
            aload 4 /* nodes */
            areturn
        end local 5 // java.util.Iterator nodesIterator
        end local 4 // java.util.List nodes
        end local 3 // com.oracle.truffle.api.instrumentation.EventContext context
        end local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 1 // com.oracle.truffle.api.debug.DebuggerNode source
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   24     1         source  Lcom/oracle/truffle/api/debug/DebuggerNode;
            0   24     2  suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            1   24     3        context  Lcom/oracle/truffle/api/instrumentation/EventContext;
            2   24     4          nodes  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
            4   24     5  nodesIterator  Ljava/util/Iterator<Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;>;
            6   16     6          after  Z
            8   15     7           node  Lcom/oracle/truffle/api/debug/DebuggerNode;
           18   22     6           node  Lcom/oracle/truffle/api/debug/DebuggerNode;
    Signature: (Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
    MethodParameters:
               Name  Flags
      source         
      suspendAnchor  

  private java.util.List<com.oracle.truffle.api.debug.DebuggerNode> collectDebuggerNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.debug.SuspendAnchor);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // com.oracle.truffle.api.nodes.Node iNode
        start local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
         0: .line 1375
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* nodes */
        start local 3 // java.util.List nodes
         1: .line 1376
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.debug.SuspendAnchor java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.EventBinding
            astore 4 /* binding */
        start local 4 // com.oracle.truffle.api.instrumentation.EventBinding binding
         3: .line 1377
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 1 /* iNode */
            aload 4 /* binding */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.lookupExecutionEventNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
            checkcast com.oracle.truffle.api.debug.DebuggerNode
            astore 6 /* node */
        start local 6 // com.oracle.truffle.api.debug.DebuggerNode node
         4: .line 1378
            aload 6 /* node */
            ifnull 6
            aload 6 /* node */
            aload 2 /* suspendAnchor */
            invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
            ifeq 6
         5: .line 1379
            aload 3 /* nodes */
            aload 6 /* node */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.api.debug.DebuggerNode node
        end local 4 // com.oracle.truffle.api.instrumentation.EventBinding binding
         6: .line 1376
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1382
            aload 3 /* nodes */
            areturn
        end local 3 // java.util.List nodes
        end local 2 // com.oracle.truffle.api.debug.SuspendAnchor suspendAnchor
        end local 1 // com.oracle.truffle.api.nodes.Node iNode
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    8     1          iNode  Lcom/oracle/truffle/api/nodes/Node;
            0    8     2  suspendAnchor  Lcom/oracle/truffle/api/debug/SuspendAnchor;
            1    8     3          nodes  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
            3    6     4        binding  Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
            4    6     6           node  Lcom/oracle/truffle/api/debug/DebuggerNode;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
    MethodParameters:
               Name  Flags
      iNode          
      suspendAnchor  

  private synchronized com.oracle.truffle.api.debug.SteppingStrategy notifyNewThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebuggerSession this
        start local 1 // java.lang.Thread currentThread
         0: .line 1386
            aload 0 /* this */
            aload 1 /* currentThread */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 2 /* s */
        start local 2 // com.oracle.truffle.api.debug.SteppingStrategy s
         1: .line 1388
            aload 2 /* s */
            ifnonnull 7
         2: .line 1389
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
            ifeq 5
         3: .line 1391
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 2 /* s */
         4: .line 1392
            goto 6
         5: .line 1394
      StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
      StackMap stack:
            invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createContinue:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
            astore 2 /* s */
         6: .line 1396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currentThread */
            aload 2 /* s */
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
         7: .line 1398
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
            ifne 8
            aload 2 /* s */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 1399
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            areturn
        end local 2 // com.oracle.truffle.api.debug.SteppingStrategy s
        end local 1 // java.lang.Thread currentThread
        end local 0 // com.oracle.truffle.api.debug.DebuggerSession this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0    9     1  currentThread  Ljava/lang/Thread;
            1    9     2              s  Lcom/oracle/truffle/api/debug/SteppingStrategy;
    MethodParameters:
               Name  Flags
      currentThread  

  static java.lang.Object evalInContext(com.oracle.truffle.api.debug.SuspendedEvent, java.lang.String, com.oracle.truffle.api.frame.FrameInstance);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Ljava/lang/String;Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent ev
        start local 1 // java.lang.String code
        start local 2 // com.oracle.truffle.api.frame.FrameInstance frameInstance
         0: .line 1415
            aload 2 /* frameInstance */
            ifnonnull 4
         1: .line 1416
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getContext:()Lcom/oracle/truffle/api/debug/SuspendedContext;
            invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* node */
        start local 3 // com.oracle.truffle.api.nodes.Node node
         2: .line 1417
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getMaterializedFrame:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            astore 4 /* frame */
        start local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
         3: .line 1418
            goto 6
        end local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 3 // com.oracle.truffle.api.nodes.Node node
         4: .line 1419
      StackMap locals:
      StackMap stack:
            aload 2 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* node */
        start local 3 // com.oracle.truffle.api.nodes.Node node
         5: .line 1420
            aload 2 /* frameInstance */
            getstatic com.oracle.truffle.api.frame.FrameInstance$FrameAccess.MATERIALIZE:Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getFrame:(Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;)Lcom/oracle/truffle/api/frame/Frame;
            invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            astore 4 /* frame */
        start local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
         6: .line 1423
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         7: .line 1424
            aload 0 /* ev */
            aload 3 /* node */
            aload 4 /* frame */
            aload 1 /* code */
            invokestatic com.oracle.truffle.api.debug.DebuggerSession.evalInContext:(Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/String;)Ljava/lang/Object;
            astore 9
         8: .line 1437
            getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         9: .line 1424
            aload 9
            areturn
        10: .line 1425
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.debug.KillException
            pop
        11: .line 1426
            new com.oracle.truffle.api.debug.DebugException
            dup
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            ldc "Evaluation was killed."
            aconst_null
            iconst_1
            aconst_null
            invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
            athrow
        12: .line 1427
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 5 /* ex */
        start local 5 // java.lang.IllegalStateException ex
        13: .line 1428
            aload 5 /* ex */
            athrow
        end local 5 // java.lang.IllegalStateException ex
        14: .line 1429
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
        15: .line 1430
            aconst_null
            astore 6 /* language */
        start local 6 // com.oracle.truffle.api.nodes.LanguageInfo language
        16: .line 1431
            aload 3 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 7 /* root */
        start local 7 // com.oracle.truffle.api.nodes.RootNode root
        17: .line 1432
            aload 7 /* root */
            ifnull 19
        18: .line 1433
            aload 7 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 6 /* language */
        19: .line 1435
      StackMap locals: java.lang.Throwable com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            new com.oracle.truffle.api.debug.DebugException
            dup
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 5 /* ex */
            aload 6 /* language */
            aconst_null
            iconst_1
            aconst_null
            invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/Throwable;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
            athrow
        end local 7 // com.oracle.truffle.api.nodes.RootNode root
        end local 6 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 5 // java.lang.Throwable ex
        20: .line 1436
      StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent java.lang.String com.oracle.truffle.api.frame.FrameInstance com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame
      StackMap stack: java.lang.Throwable
            astore 8
        21: .line 1437
            getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        22: .line 1438
            aload 8
            athrow
        end local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 3 // com.oracle.truffle.api.nodes.Node node
        end local 2 // com.oracle.truffle.api.frame.FrameInstance frameInstance
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent ev
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0             ev  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            0   23     1           code  Ljava/lang/String;
            0   23     2  frameInstance  Lcom/oracle/truffle/api/frame/FrameInstance;
            2    4     3           node  Lcom/oracle/truffle/api/nodes/Node;
            5   23     3           node  Lcom/oracle/truffle/api/nodes/Node;
            3    4     4          frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            6   23     4          frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
           13   14     5             ex  Ljava/lang/IllegalStateException;
           15   20     5             ex  Ljava/lang/Throwable;
           16   20     6       language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
           17   20     7           root  Lcom/oracle/truffle/api/nodes/RootNode;
      Exception table:
        from    to  target  type
           6     8      10  Class com.oracle.truffle.api.debug.KillException
           6     8      12  Class java.lang.IllegalStateException
           6     8      14  Class java.lang.Throwable
           6     8      20  any
          10    20      20  any
    Exceptions:
      throws com.oracle.truffle.api.debug.DebugException
    MethodParameters:
               Name  Flags
      ev             
      code           
      frameInstance  

  private static java.lang.Object evalInContext(com.oracle.truffle.api.debug.SuspendedEvent, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent ev
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame frame
        start local 3 // java.lang.String code
         0: .line 1442
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 4 /* rootNode */
        start local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 1443
            aload 4 /* rootNode */
            ifnonnull 3
         2: .line 1444
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot evaluate in context using a node that is not yet adopted using a RootNode."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1447
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 4 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 5 /* info */
        start local 5 // com.oracle.truffle.api.nodes.LanguageInfo info
         4: .line 1448
            aload 5 /* info */
            ifnonnull 6
         5: .line 1449
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot evaluate in context using a without an associated TruffleLanguage."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1452
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 5 /* info */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            aload 3 /* code */
            ldc "eval in context"
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            iconst_1
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 6 /* source */
        start local 6 // com.oracle.truffle.api.source.Source source
         7: .line 1453
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            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;
            aload 6 /* source */
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.parseInline:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
            astore 7 /* fragment */
        start local 7 // com.oracle.truffle.api.nodes.ExecutableNode fragment
         8: .line 1454
            aload 7 /* fragment */
            ifnull 11
         9: .line 1455
            aload 0 /* ev */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getInsertableNode:()Lcom/oracle/truffle/api/debug/InsertableNode;
            aload 7 /* fragment */
            invokeinterface com.oracle.truffle.api.debug.InsertableNode.setParentOf:(Lcom/oracle/truffle/api/nodes/Node;)V
        10: .line 1456
            aload 7 /* fragment */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            areturn
        11: .line 1458
      StackMap locals: com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.ExecutableNode
      StackMap stack:
            aload 5 /* info */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.isInteractive:()Z
            ifne 13
        12: .line 1459
            new java.lang.IllegalStateException
            dup
            ldc "Can not evaluate in a non-interactive language."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1461
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.Debugger.ACCESSOR:Lcom/oracle/truffle/api/debug/Debugger$AccessorDebug;
            aload 6 /* source */
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.debug.Debugger$AccessorDebug.evalInContext:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Ljava/lang/Object;
            areturn
        end local 7 // com.oracle.truffle.api.nodes.ExecutableNode fragment
        end local 6 // com.oracle.truffle.api.source.Source source
        end local 5 // com.oracle.truffle.api.nodes.LanguageInfo info
        end local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 3 // java.lang.String code
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent ev
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0        ev  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            0   14     1      node  Lcom/oracle/truffle/api/nodes/Node;
            0   14     2     frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   14     3      code  Ljava/lang/String;
            1   14     4  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            4   14     5      info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            7   14     6    source  Lcom/oracle/truffle/api/source/Source;
            8   14     7  fragment  Lcom/oracle/truffle/api/nodes/ExecutableNode;
    MethodParameters:
       Name  Flags
      ev     
      node   
      frame  
      code   

  static int[] $SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 184
            getstatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.api.debug.Breakpoint$Kind.values:()[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.EXCEPTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.HALT_INSTRUCTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.SOURCE_LOCATION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "DebuggerSession.java"
NestMembers:
  com.oracle.truffle.api.debug.DebuggerSession$1  com.oracle.truffle.api.debug.DebuggerSession$2  com.oracle.truffle.api.debug.DebuggerSession$3  com.oracle.truffle.api.debug.DebuggerSession$4  com.oracle.truffle.api.debug.DebuggerSession$5  com.oracle.truffle.api.debug.DebuggerSession$6  com.oracle.truffle.api.debug.DebuggerSession$7  com.oracle.truffle.api.debug.DebuggerSession$8  com.oracle.truffle.api.debug.DebuggerSession$Caller  com.oracle.truffle.api.debug.DebuggerSession$RootSteppingDepthNode  com.oracle.truffle.api.debug.DebuggerSession$StableBoolean  com.oracle.truffle.api.debug.DebuggerSession$SteppingNode  com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  final BreakpointConditionFailure = com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure of com.oracle.truffle.api.debug.Breakpoint
  public final Kind = com.oracle.truffle.api.debug.Breakpoint$Kind of com.oracle.truffle.api.debug.Breakpoint
  public final CatchLocation = com.oracle.truffle.api.debug.DebugException$CatchLocation of com.oracle.truffle.api.debug.DebugException
  final AccessorDebug = com.oracle.truffle.api.debug.Debugger$AccessorDebug of com.oracle.truffle.api.debug.Debugger
  abstract InputValuesProvider = com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider of com.oracle.truffle.api.debug.DebuggerNode
  com.oracle.truffle.api.debug.DebuggerSession$1
  com.oracle.truffle.api.debug.DebuggerSession$2
  com.oracle.truffle.api.debug.DebuggerSession$3
  com.oracle.truffle.api.debug.DebuggerSession$4
  com.oracle.truffle.api.debug.DebuggerSession$5
  com.oracle.truffle.api.debug.DebuggerSession$6
  com.oracle.truffle.api.debug.DebuggerSession$7
  com.oracle.truffle.api.debug.DebuggerSession$8
  final Caller = com.oracle.truffle.api.debug.DebuggerSession$Caller of com.oracle.truffle.api.debug.DebuggerSession
  private final RootSteppingDepthNode = com.oracle.truffle.api.debug.DebuggerSession$RootSteppingDepthNode of com.oracle.truffle.api.debug.DebuggerSession
  final StableBoolean = com.oracle.truffle.api.debug.DebuggerSession$StableBoolean of com.oracle.truffle.api.debug.DebuggerSession
  private SteppingNode = com.oracle.truffle.api.debug.DebuggerSession$SteppingNode of com.oracle.truffle.api.debug.DebuggerSession
  final ThreadSuspension = com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension of com.oracle.truffle.api.debug.DebuggerSession
  final Unwind = com.oracle.truffle.api.debug.SteppingStrategy$Unwind of com.oracle.truffle.api.debug.SteppingStrategy
  public final FrameAccess = com.oracle.truffle.api.frame.FrameInstance$FrameAccess of com.oracle.truffle.api.frame.FrameInstance
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public abstract SourcePredicate = com.oracle.truffle.api.instrumentation.SourceSectionFilter$SourcePredicate of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public KeySetView = java.util.concurrent.ConcurrentHashMap$KeySetView of java.util.concurrent.ConcurrentHashMap