public abstract class com.oracle.truffle.api.debug.test.AbstractDebugTest
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.debug.test.AbstractDebugTest
  super_class: java.lang.Object
{
  protected com.oracle.truffle.tck.DebuggerTester tester;
    descriptor: Lcom/oracle/truffle/tck/DebuggerTester;
    flags: (0x0004) ACC_PROTECTED

  private final java.util.ArrayDeque<com.oracle.truffle.tck.DebuggerTester> sessionStack;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayDeque<Lcom/oracle/truffle/tck/DebuggerTester;>;

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield com.oracle.truffle.api.debug.test.AbstractDebugTest.sessionStack:Ljava/util/ArrayDeque;
         2: .line 81
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  public void before();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 85
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.AbstractDebugTest.pushContext:()V
         1: .line 86
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 90
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.AbstractDebugTest.popContext:()V
         1: .line 91
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
    RuntimeVisibleAnnotations: 
      org.junit.After()

  protected final void resetContext(com.oracle.truffle.tck.DebuggerTester);
    descriptor: (Lcom/oracle/truffle/tck/DebuggerTester;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.tck.DebuggerTester newTester
         0: .line 94
            aload 0 /* this */
            aload 1 /* newTester */
            putfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
         1: .line 95
            return
        end local 1 // com.oracle.truffle.tck.DebuggerTester newTester
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    2     1  newTester  Lcom/oracle/truffle/tck/DebuggerTester;
    MethodParameters:
           Name  Flags
      newTester  

  protected final com.oracle.truffle.api.debug.Debugger getDebugger();
    descriptor: ()Lcom/oracle/truffle/api/debug/Debugger;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 98
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.getDebugger:()Lcom/oracle/truffle/api/debug/Debugger;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final com.oracle.truffle.api.debug.DebuggerSession startSession();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebuggerSession;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 102
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final com.oracle.truffle.api.debug.DebuggerSession startSession(com.oracle.truffle.api.debug.SourceElement[]);
    descriptor: ([Lcom/oracle/truffle/api/debug/SourceElement;)Lcom/oracle/truffle/api/debug/DebuggerSession;
    flags: (0x0094) ACC_PROTECTED, ACC_FINAL, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.api.debug.SourceElement[] sourceElements
         0: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            aload 1 /* sourceElements */
            invokevirtual com.oracle.truffle.tck.DebuggerTester.startSession:([Lcom/oracle/truffle/api/debug/SourceElement;)Lcom/oracle/truffle/api/debug/DebuggerSession;
            areturn
        end local 1 // com.oracle.truffle.api.debug.SourceElement[] sourceElements
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    1     1  sourceElements  [Lcom/oracle/truffle/api/debug/SourceElement;
    MethodParameters:
                Name  Flags
      sourceElements  

  protected final java.lang.String getOutput();
    descriptor: ()Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 110
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.getOut:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final java.lang.Thread getEvalThread();
    descriptor: ()Ljava/lang/Thread;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 114
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.getEvalThread:()Ljava/lang/Thread;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final void startEval(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // java.lang.String source
         0: .line 118
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.AbstractDebugTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            invokevirtual com.oracle.truffle.api.debug.test.AbstractDebugTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         1: .line 119
            return
        end local 1 // java.lang.String source
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    2     1  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  

  protected final void startEval(org.graalvm.polyglot.Source);
    descriptor: (Lorg/graalvm/polyglot/Source;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // org.graalvm.polyglot.Source source
         0: .line 122
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.tck.DebuggerTester.startEval:(Lorg/graalvm/polyglot/Source;)V
         1: .line 123
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    2     1  source  Lorg/graalvm/polyglot/Source;
    MethodParameters:
        Name  Flags
      source  

  protected final void pushContext();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 126
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            ifnull 2
         1: .line 127
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.sessionStack:Ljava/util/ArrayDeque;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
         2: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.oracle.truffle.tck.DebuggerTester
            dup
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
            invokevirtual org.graalvm.polyglot.Context$Builder.allowPolyglotAccess:(Lorg/graalvm/polyglot/PolyglotAccess;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokespecial com.oracle.truffle.tck.DebuggerTester.<init>:(Lorg/graalvm/polyglot/Context$Builder;)V
            putfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
         3: .line 130
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final void popContext();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 133
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.close:()V
         1: .line 134
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.sessionStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            ifne 3
         2: .line 135
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.sessionStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
            checkcast com.oracle.truffle.tck.DebuggerTester
            putfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
         3: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final com.oracle.truffle.api.source.Source getSourceImpl(org.graalvm.polyglot.Source);
    descriptor: (Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // org.graalvm.polyglot.Source source
         0: .line 141
            aload 1 /* source */
            invokestatic com.oracle.truffle.tck.DebuggerTester.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
            areturn
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    1     1  source  Lorg/graalvm/polyglot/Source;
    MethodParameters:
        Name  Flags
      source  

  protected java.io.File testFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // java.lang.String code
         0: .line 145
            ldc "TestFile"
            ldc ".titl"
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            astore 2 /* file */
        start local 2 // java.io.File file
         1: .line 146
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.FileWriter
            dup
            aload 2 /* file */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 5 /* w */
        start local 5 // java.io.Writer w
         3: .line 147
            aload 5 /* w */
            aload 1 /* code */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         4: .line 148
            aload 5 /* w */
            ifnull 10
            aload 5 /* w */
            invokevirtual java.io.Writer.close:()V
            goto 10
      StackMap locals: com.oracle.truffle.api.debug.test.AbstractDebugTest java.lang.String java.io.File java.lang.Throwable java.lang.Throwable java.io.Writer
      StackMap stack: java.lang.Throwable
         5: astore 3
            aload 5 /* w */
            ifnull 6
            aload 5 /* w */
            invokevirtual java.io.Writer.close:()V
        end local 5 // java.io.Writer w
      StackMap locals:
      StackMap stack:
         6: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
            aload 3
            ifnonnull 8
            aload 4
            astore 3
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 3
            aload 4
            if_acmpeq 9
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
        10: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* file */
            invokevirtual java.io.File.deleteOnExit:()V
        11: .line 150
            aload 2 /* file */
            areturn
        end local 2 // java.io.File file
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0   12     1  code  Ljava/lang/String;
            1   12     2  file  Ljava/io/File;
            3    6     5     w  Ljava/io/Writer;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      code  

  protected org.graalvm.polyglot.Source testSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // java.lang.String code
         0: .line 154
            ldc "instrumentation-test-language"
            aload 1 /* code */
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            areturn
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    1     1  code  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      code  

  protected com.oracle.truffle.api.debug.SuspendedEvent checkState(com.oracle.truffle.api.debug.SuspendedEvent, int, boolean, java.lang.String, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;IZLjava/lang/String;[Ljava/lang/String;)Lcom/oracle/truffle/api/debug/SuspendedEvent;
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        start local 2 // int expectedLineNumber
        start local 3 // boolean expectedIsBefore
        start local 4 // java.lang.String expectedCode
        start local 5 // java.lang.String[] expectedFrame
         0: .line 159
            iload 3 /* expectedIsBefore */
            ifeq 3
         1: .line 160
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            istore 6 /* actualLineNumber */
        start local 6 // int actualLineNumber
         2: .line 161
            goto 4
        end local 6 // int actualLineNumber
         3: .line 162
      StackMap locals:
      StackMap stack:
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getEndLine:()I
            istore 6 /* actualLineNumber */
        start local 6 // int actualLineNumber
         4: .line 164
      StackMap locals: int
      StackMap stack:
            iload 2 /* expectedLineNumber */
            i2l
            iload 6 /* actualLineNumber */
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         5: .line 165
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 7 /* actualCode */
        start local 7 // java.lang.String actualCode
         6: .line 166
            aload 4 /* expectedCode */
            aload 7 /* actualCode */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 167
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            if_acmpne 8
            iconst_1
            goto 9
      StackMap locals: java.lang.String
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* actualIsBefore */
        start local 8 // boolean actualIsBefore
        10: .line 168
            iload 3 /* expectedIsBefore */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            iload 8 /* actualIsBefore */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 170
            aload 0 /* this */
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            aload 5 /* expectedFrame */
            invokevirtual com.oracle.truffle.api.debug.test.AbstractDebugTest.checkStack:(Lcom/oracle/truffle/api/debug/DebugStackFrame;[Ljava/lang/String;)V
        12: .line 171
            aload 1 /* suspendedEvent */
            areturn
        end local 8 // boolean actualIsBefore
        end local 7 // java.lang.String actualCode
        end local 6 // int actualLineNumber
        end local 5 // java.lang.String[] expectedFrame
        end local 4 // java.lang.String expectedCode
        end local 3 // boolean expectedIsBefore
        end local 2 // int expectedLineNumber
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0   13     1      suspendedEvent  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            0   13     2  expectedLineNumber  I
            0   13     3    expectedIsBefore  Z
            0   13     4        expectedCode  Ljava/lang/String;
            0   13     5       expectedFrame  [Ljava/lang/String;
            2    3     6    actualLineNumber  I
            4   13     6    actualLineNumber  I
            6   13     7          actualCode  Ljava/lang/String;
           10   13     8      actualIsBefore  Z
    MethodParameters:
                    Name  Flags
      suspendedEvent      
      expectedLineNumber  final
      expectedIsBefore    final
      expectedCode        final
      expectedFrame       final

  protected com.oracle.truffle.api.debug.SuspendedEvent checkReturn(com.oracle.truffle.api.debug.SuspendedEvent, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Ljava/lang/String;)Lcom/oracle/truffle/api/debug/SuspendedEvent;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        start local 2 // java.lang.String expectedReturnValue
         0: .line 175
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getReturnValue:()Lcom/oracle/truffle/api/debug/DebugValue;
            astore 3 /* returnValue */
        start local 3 // com.oracle.truffle.api.debug.DebugValue returnValue
         1: .line 176
            aload 2 /* expectedReturnValue */
            ifnonnull 4
         2: .line 177
            aload 3 /* returnValue */
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         3: .line 178
            goto 5
         4: .line 179
      StackMap locals: com.oracle.truffle.api.debug.DebugValue
      StackMap stack:
            aload 2 /* expectedReturnValue */
            aload 3 /* returnValue */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 181
      StackMap locals:
      StackMap stack:
            aload 1 /* suspendedEvent */
            areturn
        end local 3 // com.oracle.truffle.api.debug.DebugValue returnValue
        end local 2 // java.lang.String expectedReturnValue
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    6     1       suspendedEvent  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            0    6     2  expectedReturnValue  Ljava/lang/String;
            1    6     3          returnValue  Lcom/oracle/truffle/api/debug/DebugValue;
    MethodParameters:
                     Name  Flags
      suspendedEvent       
      expectedReturnValue  final

  protected void checkStack(com.oracle.truffle.api.debug.DebugStackFrame, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/debug/DebugStackFrame;[Ljava/lang/String;)V
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.api.debug.DebugStackFrame frame
        start local 2 // java.lang.String[] expectedFrame
         0: .line 185
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* values */
        start local 3 // java.util.Map values
         1: .line 186
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.debug.DebugStackFrame.getScope:()Lcom/oracle/truffle/api/debug/DebugScope;
            invokevirtual com.oracle.truffle.api.debug.DebugScope.getDeclaredValues:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.oracle.truffle.api.debug.test.AbstractDebugTest com.oracle.truffle.api.debug.DebugStackFrame java.lang.String[] java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugValue
            astore 4 /* value */
        start local 4 // com.oracle.truffle.api.debug.DebugValue value
         3: .line 187
            aload 3 /* values */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.getName:()Ljava/lang/String;
            aload 4 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // com.oracle.truffle.api.debug.DebugValue value
         4: .line 186
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 189
            aload 2 /* expectedFrame */
            arraylength
            iconst_2
            idiv
            i2l
            aload 3 /* values */
            invokeinterface java.util.Map.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         6: .line 190
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 14
         8: .line 191
      StackMap locals: com.oracle.truffle.api.debug.test.AbstractDebugTest com.oracle.truffle.api.debug.DebugStackFrame java.lang.String[] java.util.Map int
      StackMap stack:
            aload 2 /* expectedFrame */
            iload 4 /* i */
            aaload
            astore 5 /* expectedIdentifier */
        start local 5 // java.lang.String expectedIdentifier
         9: .line 192
            aload 2 /* expectedFrame */
            iload 4 /* i */
            iconst_1
            iadd
            aaload
            astore 6 /* expectedValue */
        start local 6 // java.lang.String expectedValue
        10: .line 193
            aload 3 /* values */
            aload 5 /* expectedIdentifier */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugValue
            astore 7 /* value */
        start local 7 // com.oracle.truffle.api.debug.DebugValue value
        11: .line 194
            new java.lang.StringBuilder
            dup
            ldc "Identifier "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* expectedIdentifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* value */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 195
            aload 6 /* expectedValue */
            aload 7 /* value */
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.debug.DebugValue value
        end local 6 // java.lang.String expectedValue
        end local 5 // java.lang.String expectedIdentifier
        13: .line 190
            iinc 4 /* i */ 2
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 2 /* expectedFrame */
            arraylength
            if_icmplt 8
        end local 4 // int i
        15: .line 197
            return
        end local 3 // java.util.Map values
        end local 2 // java.lang.String[] expectedFrame
        end local 1 // com.oracle.truffle.api.debug.DebugStackFrame frame
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0                this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0   16     1               frame  Lcom/oracle/truffle/api/debug/DebugStackFrame;
            0   16     2       expectedFrame  [Ljava/lang/String;
            1   16     3              values  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/debug/DebugValue;>;
            3    4     4               value  Lcom/oracle/truffle/api/debug/DebugValue;
            7   15     4                   i  I
            9   13     5  expectedIdentifier  Ljava/lang/String;
           10   13     6       expectedValue  Ljava/lang/String;
           11   13     7               value  Lcom/oracle/truffle/api/debug/DebugValue;
    MethodParameters:
               Name  Flags
      frame          
      expectedFrame  

  protected final java.lang.String expectDone();
    descriptor: ()Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 200
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.expectDone:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final java.lang.Throwable expectThrowable();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 204
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.expectThrowable:()Ljava/lang/Throwable;
            areturn
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final void expectSuspended(com.oracle.truffle.api.debug.SuspendedCallback);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
        start local 1 // com.oracle.truffle.api.debug.SuspendedCallback handler
         0: .line 208
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            aload 1 /* handler */
            invokevirtual com.oracle.truffle.tck.DebuggerTester.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         1: .line 209
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedCallback handler
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
            0    2     1  handler  Lcom/oracle/truffle/api/debug/SuspendedCallback;
    MethodParameters:
         Name  Flags
      handler  

  protected final void expectKilled();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 212
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.expectKilled:()V
         1: .line 213
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;

  protected final void closeEngine();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
         0: .line 216
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.test.AbstractDebugTest.tester:Lcom/oracle/truffle/tck/DebuggerTester;
            invokevirtual com.oracle.truffle.tck.DebuggerTester.closeEngine:()V
         1: .line 217
            return
        end local 0 // com.oracle.truffle.api.debug.test.AbstractDebugTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/test/AbstractDebugTest;
}
SourceFile: "AbstractDebugTest.java"
InnerClasses:
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context