public final class com.oracle.truffle.api.debug.DebugContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.DebugContext
  super_class: java.lang.Object
{
  private final com.oracle.truffle.api.debug.DebuggerExecutionLifecycle executionLifecycle;
    descriptor: Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 56
            ldc Lcom/oracle/truffle/api/debug/DebugContext;
            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.DebugContext.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.api.debug.DebuggerExecutionLifecycle, com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;Lcom/oracle/truffle/api/TruffleContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebugContext this
        start local 1 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle executionLifecycle
        start local 2 // com.oracle.truffle.api.TruffleContext context
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            aload 1 /* executionLifecycle */
            putfield com.oracle.truffle.api.debug.DebugContext.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
         2: .line 63
            aload 0 /* this */
            aload 2 /* context */
            putfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
         3: .line 64
            return
        end local 2 // com.oracle.truffle.api.TruffleContext context
        end local 1 // com.oracle.truffle.api.debug.DebuggerExecutionLifecycle executionLifecycle
        end local 0 // com.oracle.truffle.api.debug.DebugContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/oracle/truffle/api/debug/DebugContext;
            0    4     1  executionLifecycle  Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            0    4     2             context  Lcom/oracle/truffle/api/TruffleContext;
    MethodParameters:
                    Name  Flags
      executionLifecycle  
      context             

  public com.oracle.truffle.api.debug.DebugValue evaluate(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.debug.DebugContext this
        start local 1 // java.lang.String code
        start local 2 // java.lang.String languageId
         0: .line 75
            getstatic com.oracle.truffle.api.debug.DebugContext.$assertionsDisabled:Z
            ifne 1
            aload 1 /* code */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 3 /* prevContext */
        start local 3 // java.lang.Object prevContext
         2: .line 78
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getDebugger:()Lcom/oracle/truffle/api/debug/Debugger;
            astore 4 /* debugger */
        start local 4 // com.oracle.truffle.api.debug.Debugger debugger
         3: .line 79
            aload 4 /* debugger */
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 2 /* languageId */
            aload 1 /* code */
            ldc "eval"
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            iconst_0
            anewarray java.lang.String
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.parse:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            astore 5 /* target */
        start local 5 // com.oracle.truffle.api.CallTarget target
         4: .line 80
            aload 5 /* target */
            iconst_0
            anewarray java.lang.Object
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* result */
        start local 6 // java.lang.Object result
         5: .line 81
            aload 4 /* 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 2 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 7 /* languageInfo */
        start local 7 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         6: .line 82
            new com.oracle.truffle.api.debug.DebugValue$HeapValue
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 7 /* languageInfo */
            aconst_null
            aload 6 /* result */
            invokespecial com.oracle.truffle.api.debug.DebugValue$HeapValue.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/String;Ljava/lang/Object;)V
            astore 9
         7: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 3 /* prevContext */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
         8: .line 82
            aload 9
            areturn
        end local 7 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 6 // java.lang.Object result
        end local 5 // com.oracle.truffle.api.CallTarget target
        end local 4 // com.oracle.truffle.api.debug.Debugger debugger
         9: .line 83
      StackMap locals: com.oracle.truffle.api.debug.DebugContext java.lang.String java.lang.String java.lang.Object
      StackMap stack: java.io.IOException
            astore 4 /* ex */
        start local 4 // java.io.IOException ex
        10: .line 84
            new java.lang.RuntimeException
            dup
            aload 4 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ex
        11: .line 85
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        12: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 3 /* prevContext */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        13: .line 87
            aload 8
            athrow
        end local 3 // java.lang.Object prevContext
        end local 2 // java.lang.String languageId
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.api.debug.DebugContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/oracle/truffle/api/debug/DebugContext;
            0   14     1          code  Ljava/lang/String;
            0   14     2    languageId  Ljava/lang/String;
            2   14     3   prevContext  Ljava/lang/Object;
            3    9     4      debugger  Lcom/oracle/truffle/api/debug/Debugger;
            4    9     5        target  Lcom/oracle/truffle/api/CallTarget;
            5    9     6        result  Ljava/lang/Object;
            6    9     7  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
           10   11     4            ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     7       9  Class java.io.IOException
           2     7      11  any
           9    11      11  any
    MethodParameters:
            Name  Flags
      code        
      languageId  

  public <T> T runInContext(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugContext this
        start local 1 // java.util.function.Supplier run
         0: .line 100
            getstatic com.oracle.truffle.api.debug.DebugContext.$assertionsDisabled:Z
            ifne 1
            aload 1 /* run */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 2 /* prevContext */
        start local 2 // java.lang.Object prevContext
         2: .line 103
            aload 1 /* run */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            astore 3 /* ret */
        start local 3 // java.lang.Object ret
         3: .line 104
            aload 3 /* ret */
            astore 5
         4: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 2 /* prevContext */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
         5: .line 104
            aload 5
            areturn
        end local 3 // java.lang.Object ret
         6: .line 105
      StackMap locals: com.oracle.truffle.api.debug.DebugContext java.util.function.Supplier java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 4
         7: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 2 /* prevContext */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
         8: .line 107
            aload 4
            athrow
        end local 2 // java.lang.Object prevContext
        end local 1 // java.util.function.Supplier run
        end local 0 // com.oracle.truffle.api.debug.DebugContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/api/debug/DebugContext;
            0    9     1          run  Ljava/util/function/Supplier<TT;>;
            2    9     2  prevContext  Ljava/lang/Object;
            3    6     3          ret  TT;
      Exception table:
        from    to  target  type
           2     4       6  any
    Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
      Name  Flags
      run   

  public com.oracle.truffle.api.debug.DebugContext getParent();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebugContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugContext this
         0: .line 117
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.context:Lcom/oracle/truffle/api/TruffleContext;
            invokevirtual com.oracle.truffle.api.TruffleContext.getParent:()Lcom/oracle/truffle/api/TruffleContext;
            astore 1 /* parent */
        start local 1 // com.oracle.truffle.api.TruffleContext parent
         1: .line 118
            aload 1 /* parent */
            ifnonnull 3
         2: .line 119
            aconst_null
            areturn
         3: .line 121
      StackMap locals: com.oracle.truffle.api.TruffleContext
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugContext.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.getCachedDebugContext:(Lcom/oracle/truffle/api/TruffleContext;)Lcom/oracle/truffle/api/debug/DebugContext;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleContext parent
        end local 0 // com.oracle.truffle.api.debug.DebugContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/api/debug/DebugContext;
            1    4     1  parent  Lcom/oracle/truffle/api/TruffleContext;
}
SourceFile: "DebugContext.java"
InnerClasses:
  HeapValue = com.oracle.truffle.api.debug.DebugValue$HeapValue of com.oracle.truffle.api.debug.DebugValue
  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