public class com.oracle.truffle.api.debug.test.DebugExceptionTest extends com.oracle.truffle.api.debug.test.AbstractDebugTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.test.DebugExceptionTest
  super_class: com.oracle.truffle.api.debug.test.AbstractDebugTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 70
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.test.AbstractDebugTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;

  public void testExceptionBuilder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 75
            iconst_0
            iconst_0
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         1: .line 76
            invokestatic org.junit.Assert.fail:()V
         2: .line 77
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         3: pop
         4: .line 80
      StackMap locals:
      StackMap stack:
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 1 /* bp */
        start local 1 // com.oracle.truffle.api.debug.Breakpoint bp
         5: .line 81
            aload 1 /* bp */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isEnabled:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 82
            aload 1 /* bp */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isOneShot:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         7: .line 83
            return
        end local 1 // com.oracle.truffle.api.debug.Breakpoint bp
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            5    8     1    bp  Lcom/oracle/truffle/api/debug/Breakpoint;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.IllegalArgumentException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUncaughtException1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 87
            aload 0 /* this */
            ldc "STATEMENT(THROW(a, b))"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 88
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* uncaughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         2: .line 89
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 90
            aload 5 /* session */
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 91
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 94
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 95
            aload 0 /* this */
            aload 2 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$0(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 108
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         9: .line 109
            ldc "b"
            aload 6 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // java.lang.Throwable t
        10: .line 110
            aload 5 /* session */
            ifnull 16
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* session */
            ifnull 12
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        16: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   17     1          testSource  Lorg/graalvm/polyglot/Source;
            2   17     2  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   12     5             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            9   10     6                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      13  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUncaughtException2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 115
            aload 0 /* this */
            ldc "ROOT(\nDEFINE(UncaughtThrow,\n  TRY(STATEMENT, STATEMENT(THROW(IllegalState, TestExceptionMessage)),\n      CATCH(a, STATEMENT))\n),\nCALL(UncaughtThrow))"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 121
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* uncaughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         2: .line 122
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 123
            aload 5 /* session */
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 124
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 126
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 127
            aload 0 /* this */
            aload 2 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$1(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 139
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         9: .line 140
            ldc "TestExceptionMessage"
            aload 6 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // java.lang.Throwable t
        10: .line 141
            aload 5 /* session */
            ifnull 16
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* session */
            ifnull 12
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        16: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   17     1          testSource  Lorg/graalvm/polyglot/Source;
            2   17     2  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   12     5             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            9   10     6                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      13  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCaughtException1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 146
            aload 0 /* this */
            ldc "TRY(STATEMENT(THROW(NPE, TestExceptionMessage)), CATCH(NPE, STATEMENT))\n"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 147
            iconst_1
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* caughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
         2: .line 148
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 149
            aload 5 /* session */
            aload 2 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 150
            aload 2 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 152
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 153
            aload 0 /* this */
            aload 2 /* caughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$2(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 167
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectDone:()Ljava/lang/String;
            pop
         9: .line 168
            aload 5 /* session */
            ifnull 15
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 15
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 5 /* session */
            ifnull 11
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
        15: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   16     1        testSource  Lorg/graalvm/polyglot/Source;
            2   16     2  caughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   11     5           session  Lcom/oracle/truffle/api/debug/DebuggerSession;
      Exception table:
        from    to  target  type
           4     9      10  any
           3    12      12  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCaughtException2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 173
            aload 0 /* this */
            ldc "ROOT(\nDEFINE(CaughtThrow,\n  TRY(STATEMENT(CALL(ThrownNPE)),\n      CATCH(NPE, STATEMENT))\n),\nDEFINE(ThrownNPE,\n  STATEMENT(THROW(NPE, TestExceptionMessage))\n),\nCALL(CaughtThrow))"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 182
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* caughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
         2: .line 183
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 184
            aload 5 /* session */
            aload 2 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 185
            aload 2 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 187
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 188
            aload 0 /* this */
            aload 2 /* caughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$3(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 206
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectDone:()Ljava/lang/String;
            pop
         9: .line 207
            aload 5 /* session */
            ifnull 15
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 15
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 5 /* session */
            ifnull 11
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
        15: .line 208
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   16     1        testSource  Lorg/graalvm/polyglot/Source;
            2   16     2  caughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   11     5           session  Lcom/oracle/truffle/api/debug/DebuggerSession;
      Exception table:
        from    to  target  type
           4     9      10  any
           3    12      12  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testGetRawUncaughtException();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 212
            aload 0 /* this */
            ldc "STATEMENT(THROW(a, b))"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 213
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* uncaughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         2: .line 214
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 215
            aload 5 /* session */
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 216
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 219
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 220
            aload 0 /* this */
            aload 2 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$4(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 226
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         9: .line 227
            ldc "b"
            aload 6 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // java.lang.Throwable t
        10: .line 228
            aload 5 /* session */
            ifnull 16
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* session */
            ifnull 12
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        16: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   17     1          testSource  Lorg/graalvm/polyglot/Source;
            2   17     2  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   12     5             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            9   10     6                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      13  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testGetRawUncaughtExceptionRestricted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 233
            aload 0 /* this */
            ldc "STATEMENT(THROW(a, b))"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 234
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* uncaughtBreakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         2: .line 235
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 236
            aload 5 /* session */
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 237
            aload 2 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 240
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         7: .line 241
            aload 0 /* this */
            aload 2 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$5(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         8: .line 248
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         9: .line 249
            ldc "b"
            aload 6 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // java.lang.Throwable t
        10: .line 250
            aload 5 /* session */
            ifnull 16
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* session */
            ifnull 12
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        16: .line 251
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   17     1          testSource  Lorg/graalvm/polyglot/Source;
            2   17     2  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   12     5             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            9   10     6                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      13  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testLocationBreakpointOnException();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 255
            aload 0 /* this */
            ldc "ROOT(\n  TRY(STATEMENT(THROW(a, b)), CATCH(a, EXPRESSION)),\n  STATEMENT\n)\n"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 259
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            iconst_2
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.lineIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.suspendAnchor:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 2 /* breakpoint */
        start local 2 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         2: .line 260
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 5 /* session */
        start local 5 // com.oracle.truffle.api.debug.DebuggerSession session
         4: .line 261
            aload 5 /* session */
            aload 2 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         5: .line 262
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         6: .line 263
            aload 0 /* this */
            aload 2 /* breakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$6(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         7: .line 275
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectDone:()Ljava/lang/String;
            pop
         8: .line 278
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 6 /* uncaughtBreakpoint */
        start local 6 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         9: .line 279
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 7 /* caughtBreakpoint */
        start local 7 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
        10: .line 280
            aload 5 /* session */
            aload 6 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
        11: .line 281
            aload 5 /* session */
            aload 7 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
        12: .line 282
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
        13: .line 283
            aload 0 /* this */
            aload 7 /* caughtBreakpoint */
            aload 2 /* breakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$7(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
        14: .line 290
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectDone:()Ljava/lang/String;
            pop
        end local 7 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
        end local 6 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        15: .line 291
            aload 5 /* session */
            ifnull 21
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 21
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source com.oracle.truffle.api.debug.Breakpoint java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        16: astore 3
            aload 5 /* session */
            ifnull 17
            aload 5 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 5 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        17: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
            aload 3
            ifnonnull 19
            aload 4
            astore 3
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 3
            aload 4
            if_acmpeq 20
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
        21: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   22     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   22     1              source  Lorg/graalvm/polyglot/Source;
            2   22     2          breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            4   17     5             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            9   15     6  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
           10   15     7    caughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
      Exception table:
        from    to  target  type
           4    15      16  any
           3    18      18  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInactive();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 296
            aload 0 /* this */
            ldc "ROOT(\n  TRY(STATEMENT(THROW(a, b)), CATCH(a, EXPRESSION)),\n  STATEMENT(THROW(c, d))\n)\n"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 301
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 4 /* session */
        start local 4 // com.oracle.truffle.api.debug.DebuggerSession session
         3: .line 302
            aload 4 /* session */
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.EXCEPTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 303
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 5 /* uncaughtBreakpoint */
        start local 5 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
         5: .line 304
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newExceptionBuilder:(ZZ)Lcom/oracle/truffle/api/debug/Breakpoint$ExceptionBuilder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 6 /* caughtBreakpoint */
        start local 6 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
         6: .line 305
            aload 4 /* session */
            aload 5 /* uncaughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         7: .line 306
            aload 4 /* session */
            aload 6 /* caughtBreakpoint */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         8: .line 308
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         9: .line 309
            aload 0 /* this */
            aload 6 /* caughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$8(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
        10: .line 314
            aload 0 /* this */
            aload 5 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$9(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
        11: .line 319
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            pop
        12: .line 322
            aload 4 /* session */
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.EXCEPTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            iconst_0
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
        13: .line 323
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
        14: .line 324
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            pop
        15: .line 327
            aload 4 /* session */
            getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.EXCEPTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
        16: .line 328
            aload 6 /* caughtBreakpoint */
            iconst_0
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setEnabled:(Z)V
        17: .line 329
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
        18: .line 330
            aload 0 /* this */
            aload 5 /* uncaughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$10(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
        19: .line 335
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            pop
        20: .line 338
            aload 6 /* caughtBreakpoint */
            iconst_1
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setEnabled:(Z)V
        21: .line 339
            aload 5 /* uncaughtBreakpoint */
            iconst_0
            invokevirtual com.oracle.truffle.api.debug.Breakpoint.setEnabled:(Z)V
        22: .line 340
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
        23: .line 341
            aload 0 /* this */
            aload 6 /* caughtBreakpoint */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$11(Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (6)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
        24: .line 346
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectThrowable:()Ljava/lang/Throwable;
            pop
        end local 6 // com.oracle.truffle.api.debug.Breakpoint caughtBreakpoint
        end local 5 // com.oracle.truffle.api.debug.Breakpoint uncaughtBreakpoint
        25: .line 347
            aload 4 /* session */
            ifnull 31
            aload 4 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 31
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
        26: astore 2
            aload 4 /* session */
            ifnull 27
            aload 4 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 4 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
        27: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 3
            aload 2
            ifnonnull 29
            aload 3
            astore 2
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 2
            aload 3
            if_acmpeq 30
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 2
            athrow
        31: .line 348
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   32     0                this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   32     1              source  Lorg/graalvm/polyglot/Source;
            3   27     4             session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            5   25     5  uncaughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            6   25     6    caughtBreakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
      Exception table:
        from    to  target  type
           3    25      26  any
           2    28      28  any
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testEvalExceptional();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
         0: .line 352
            aload 0 /* this */
            ldc "ROOT(\n  DEFINE(foo,\n    STATEMENT\n  ),\n  CALL(foo)\n)\n"
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.testSource:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* testSource */
        start local 1 // org.graalvm.polyglot.Source testSource
         1: .line 358
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            astore 4 /* session */
        start local 4 // com.oracle.truffle.api.debug.DebuggerSession session
         3: .line 359
            aload 4 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.suspendNextExecution:()V
         4: .line 360
            aload 0 /* this */
            aload 1 /* testSource */
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.startEval:(Lorg/graalvm/polyglot/Source;)V
         5: .line 361
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic onSuspend(Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
                  com/oracle/truffle/api/debug/test/DebugExceptionTest.lambda$12(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (7)
                  (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.expectSuspended:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)V
         6: .line 377
            aload 4 /* session */
            ifnull 12
            aload 4 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
            goto 12
      StackMap locals: com.oracle.truffle.api.debug.test.DebugExceptionTest org.graalvm.polyglot.Source java.lang.Throwable java.lang.Throwable com.oracle.truffle.api.debug.DebuggerSession
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* session */
            ifnull 8
            aload 4 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
        end local 4 // com.oracle.truffle.api.debug.DebuggerSession session
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
        12: .line 378
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.Source testSource
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            1   13     1  testSource  Lorg/graalvm/polyglot/Source;
            3    8     4     session  Lcom/oracle/truffle/api/debug/DebuggerSession;
      Exception table:
        from    to  target  type
           3     6       7  any
           2     9       9  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void assertDebugStackTrace(java.util.List<com.oracle.truffle.api.debug.DebugStackTraceElement>, java.lang.String[]);
    descriptor: (Ljava/util/List;[Ljava/lang/String;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.util.List debugStackTrace
        start local 1 // java.lang.String[] elements
         0: .line 381
            aload 1 /* elements */
            arraylength
            i2l
            aload 0 /* debugStackTrace */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 382
            aload 0 /* debugStackTrace */
            invokeinterface java.util.List.size:()I
            istore 2 /* n */
        start local 2 // int n
         2: .line 383
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 384
      StackMap locals: int int
      StackMap stack:
            aload 0 /* debugStackTrace */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackTraceElement
            astore 4 /* frame */
        start local 4 // com.oracle.truffle.api.debug.DebugStackTraceElement frame
         5: .line 385
            aload 4 /* frame */
            invokevirtual com.oracle.truffle.api.debug.DebugStackTraceElement.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 5 /* ss */
        start local 5 // com.oracle.truffle.api.source.SourceSection ss
         6: .line 386
            aload 1 /* elements */
            iload 3 /* i */
            aaload
            new java.lang.StringBuilder
            dup
            aload 4 /* frame */
            invokevirtual com.oracle.truffle.api.debug.DebugStackTraceElement.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " <"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ss */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ss */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ss */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getEndLine:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ss */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getEndColumn:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 5 // com.oracle.truffle.api.source.SourceSection ss
        end local 4 // com.oracle.truffle.api.debug.DebugStackTraceElement frame
         7: .line 383
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* n */
            if_icmplt 4
        end local 3 // int i
         9: .line 388
            return
        end local 2 // int n
        end local 1 // java.lang.String[] elements
        end local 0 // java.util.List debugStackTrace
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0  debugStackTrace  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
            0   10     1         elements  [Ljava/lang/String;
            2   10     2                n  I
            3    9     3                i  I
            5    7     4            frame  Lcom/oracle/truffle/api/debug/DebugStackTraceElement;
            6    7     5               ss  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;[Ljava/lang/String;)V
    MethodParameters:
                 Name  Flags
      debugStackTrace  
      elements         

  private static void assertStack(java.lang.StackTraceElement[], java.lang.String[]);
    descriptor: ([Ljava/lang/StackTraceElement;[Ljava/lang/String;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.StackTraceElement[] stackTrace
        start local 1 // java.lang.String[] elements
         0: .line 391
            aload 1 /* elements */
            arraylength
            i2l
            aload 0 /* stackTrace */
            arraylength
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 392
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 393
      StackMap locals: int
      StackMap stack:
            aload 1 /* elements */
            iload 2 /* i */
            aaload
            aload 0 /* stackTrace */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 392
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* elements */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 395
            return
        end local 1 // java.lang.String[] elements
        end local 0 // java.lang.StackTraceElement[] stackTrace
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  stackTrace  [Ljava/lang/StackTraceElement;
            0    7     1    elements  [Ljava/lang/String;
            2    6     2           i  I
    MethodParameters:
            Name  Flags
      stackTrace  
      elements    

  private static void lambda$0(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 96
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 97
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 98
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 99
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         4: .line 100
            ldc "b"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 101
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* throwLocation */
        start local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
         6: .line 102
            ldc 10
            aload 3 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 103
            ldc 21
            aload 3 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 104
            ldc "a: b"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 105
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc " <1:11, 1:21>"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertDebugStackTrace:(Ljava/util/List;[Ljava/lang/String;)V
        10: .line 106
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "<instrumentation-test-language>.(Unnamed:1)"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertStack:([Ljava/lang/StackTraceElement;[Ljava/lang/String;)V
        end local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
        11: .line 107
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     1          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3   11     2      exception  Lcom/oracle/truffle/api/debug/DebugException;
            6   11     3  throwLocation  Lcom/oracle/truffle/api/source/SourceSection;

  private static void lambda$1(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 128
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 129
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 130
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 131
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         4: .line 132
            ldc "TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 133
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* throwLocation */
        start local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
         6: .line 134
            ldc "THROW(IllegalState, TestExceptionMessage)"
            aload 3 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 135
            ldc "IllegalState: TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 136
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "UncaughtThrow <3:28, 3:68>"
            aastore
            dup
            iconst_1
            ldc " <6:1, 6:19>"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertDebugStackTrace:(Ljava/util/List;[Ljava/lang/String;)V
         9: .line 137
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "<instrumentation-test-language>.UncaughtThrow(Unnamed:3)"
            aastore
            dup
            iconst_1
            ldc "<instrumentation-test-language>.(Unnamed:6)"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertStack:([Ljava/lang/StackTraceElement;[Ljava/lang/String;)V
        end local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
        10: .line 138
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     1          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3   10     2      exception  Lcom/oracle/truffle/api/debug/DebugException;
            6   10     3  throwLocation  Lcom/oracle/truffle/api/source/SourceSection;

  private static void lambda$2(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 154
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 155
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 156
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 157
            ldc "TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 158
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            astore 3 /* catchLocation */
        start local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
         5: .line 159
            ldc "TRY(STATEMENT(THROW(NPE, TestExceptionMessage))"
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 160
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 161
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 4 /* throwLocation */
        start local 4 // com.oracle.truffle.api.source.SourceSection throwLocation
         8: .line 162
            ldc "THROW(NPE, TestExceptionMessage)"
            aload 4 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 163
            ldc "NPE: TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 164
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc " <1:15, 1:46>"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertDebugStackTrace:(Ljava/util/List;[Ljava/lang/String;)V
        11: .line 165
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "<instrumentation-test-language>.(Unnamed:1)"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertStack:([Ljava/lang/StackTraceElement;[Ljava/lang/String;)V
        end local 4 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
        12: .line 166
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     1          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3   12     2      exception  Lcom/oracle/truffle/api/debug/DebugException;
            5   12     3  catchLocation  Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            8   12     4  throwLocation  Lcom/oracle/truffle/api/source/SourceSection;

  private static void lambda$3(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 189
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 190
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 191
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 192
            ldc "TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 193
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            astore 3 /* catchLocation */
        start local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
         5: .line 194
            ldc "TRY(STATEMENT(CALL(ThrownNPE))"
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 195
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getStackFrames:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4 /* stackFrames */
        start local 4 // java.util.Iterator stackFrames
         7: .line 196
            aload 4 /* stackFrames */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            pop
         8: .line 197
            aload 4 /* stackFrames */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackFrame
            astore 5 /* nextFrame */
        start local 5 // com.oracle.truffle.api.debug.DebugStackFrame nextFrame
         9: .line 198
            aload 5 /* nextFrame */
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 199
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 6 /* throwLocation */
        start local 6 // com.oracle.truffle.api.source.SourceSection throwLocation
        11: .line 200
            ldc "THROW(NPE, TestExceptionMessage)"
            aload 6 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 201
            ldc "NPE: TestExceptionMessage"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 202
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "ThrownNPE <7:13, 7:44>"
            aastore
            dup
            iconst_1
            ldc "CaughtThrow <3:17, 3:31>"
            aastore
            dup
            iconst_2
            ldc " <9:1, 9:17>"
            aastore
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertDebugStackTrace:(Ljava/util/List;[Ljava/lang/String;)V
        14: .line 203
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "<instrumentation-test-language>.ThrownNPE(Unnamed:7)"
            aastore
            dup
            iconst_1
            ldc "<instrumentation-test-language>.CaughtThrow(Unnamed:3)"
            aastore
            dup
            iconst_2
        15: .line 204
            ldc "<instrumentation-test-language>.(Unnamed:9)"
            aastore
        16: .line 203
            invokestatic com.oracle.truffle.api.debug.test.DebugExceptionTest.assertStack:([Ljava/lang/StackTraceElement;[Ljava/lang/String;)V
        end local 6 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 5 // com.oracle.truffle.api.debug.DebugStackFrame nextFrame
        end local 4 // java.util.Iterator stackFrames
        end local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
        17: .line 205
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     1          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3   17     2      exception  Lcom/oracle/truffle/api/debug/DebugException;
            5   17     3  catchLocation  Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            7   17     4    stackFrames  Ljava/util/Iterator<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
            9   17     5      nextFrame  Lcom/oracle/truffle/api/debug/DebugStackFrame;
           11   17     6  throwLocation  Lcom/oracle/truffle/api/source/SourceSection;

  private static void lambda$4(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 221
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 222
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 223
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 224
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$ThrowNode$TestLanguageException;
            aload 2 /* exception */
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokevirtual com.oracle.truffle.api.debug.DebugException.getRawException:(Ljava/lang/Class;)Ljava/lang/Throwable;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
         4: .line 225
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     1      event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3    4     2  exception  Lcom/oracle/truffle/api/debug/DebugException;

  private static void lambda$5(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 242
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 243
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 244
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 246
            aconst_null
            aload 2 /* exception */
            ldc Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            invokevirtual com.oracle.truffle.api.debug.DebugException.getRawException:(Ljava/lang/Class;)Ljava/lang/Throwable;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
         4: .line 247
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     1      event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3    4     2  exception  Lcom/oracle/truffle/api/debug/DebugException;

  private static void lambda$6(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 264
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 265
            getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 266
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.api.debug.DebugException exception
         3: .line 267
            ldc "b"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 268
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            astore 3 /* catchLocation */
        start local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
         5: .line 269
            ldc "TRY(STATEMENT(THROW(a, b))"
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 270
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            aload 3 /* catchLocation */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.getFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 271
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 4 /* throwLocation */
        start local 4 // com.oracle.truffle.api.source.SourceSection throwLocation
         8: .line 272
            ldc "THROW(a, b)"
            aload 4 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 273
            ldc "a: b"
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            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 4 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 3 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException exception
        10: .line 274
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     1          event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            3   10     2      exception  Lcom/oracle/truffle/api/debug/DebugException;
            5   10     3  catchLocation  Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            8   10     4  throwLocation  Lcom/oracle/truffle/api/source/SourceSection;

  private static void lambda$7(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
        start local 2 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 284
            ldc 2
            aload 2 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 285
            aload 0
            aload 2 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 286
            aload 1
            aload 2 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 287
            aload 2 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            astore 3 /* exception */
        start local 3 // com.oracle.truffle.api.debug.DebugException exception
         4: .line 288
            ldc "b"
            aload 3 /* exception */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // com.oracle.truffle.api.debug.DebugException exception
         5: .line 289
            return
        end local 2 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     2      event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            4    5     3  exception  Lcom/oracle/truffle/api/debug/DebugException;

  private static void lambda$8(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 310
            lconst_1
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 311
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 312
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         3: .line 313
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     1  event  Lcom/oracle/truffle/api/debug/SuspendedEvent;

  private static void lambda$9(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 315
            lconst_1
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 316
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 317
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         3: .line 318
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     1  event  Lcom/oracle/truffle/api/debug/SuspendedEvent;

  private static void lambda$10(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 331
            lconst_1
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 332
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 333
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         3: .line 334
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     1  event  Lcom/oracle/truffle/api/debug/SuspendedEvent;

  private static void lambda$11(com.oracle.truffle.api.debug.Breakpoint, com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 342
            lconst_1
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 343
            aload 0
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getBreakpoints:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 344
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getException:()Lcom/oracle/truffle/api/debug/DebugException;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         3: .line 345
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     1  event  Lcom/oracle/truffle/api/debug/SuspendedEvent;

  private void lambda$12(com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
         0: .line 362
            aload 0 /* this */
            aload 1 /* event */
            iconst_3
            iconst_1
            ldc "STATEMENT"
            iconst_0
            anewarray java.lang.String
            invokevirtual com.oracle.truffle.api.debug.test.DebugExceptionTest.checkState:(Lcom/oracle/truffle/api/debug/SuspendedEvent;IZLjava/lang/String;[Ljava/lang/String;)Lcom/oracle/truffle/api/debug/SuspendedEvent;
            pop
         1: .line 364
            aload 1 /* event */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
            ldc "STATEMENT(THROW(NPE, TestExceptionMessage))"
            invokevirtual com.oracle.truffle.api.debug.DebugStackFrame.eval:(Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
            pop
         2: .line 365
            invokestatic org.junit.Assert.fail:()V
         3: .line 366
            goto 13
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.debug.DebugException
         4: astore 2 /* dex */
        start local 2 // com.oracle.truffle.api.debug.DebugException dex
         5: .line 367
            aload 2 /* dex */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocation:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* throwLocation */
        start local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
         6: .line 368
            ldc "THROW(NPE, TestExceptionMessage)"
            aload 3 /* throwLocation */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 369
            aload 2 /* dex */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getCatchLocation:()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         8: .line 370
            ldc "NPE: TestExceptionMessage"
            aload 2 /* dex */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getExceptionObject:()Lcom/oracle/truffle/api/debug/DebugValue;
            invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 371
            aload 2 /* dex */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            astore 4 /* debugStackTrace */
        start local 4 // java.util.List debugStackTrace
        10: .line 372
            ldc 2
            aload 4 /* debugStackTrace */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        11: .line 373
            ldc "THROW(NPE, TestExceptionMessage)"
            aload 4 /* debugStackTrace */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackTraceElement
            invokevirtual com.oracle.truffle.api.debug.DebugStackTraceElement.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 374
            ldc "CALL(foo)"
            aload 4 /* debugStackTrace */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackTraceElement
            invokevirtual com.oracle.truffle.api.debug.DebugStackTraceElement.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 4 // java.util.List debugStackTrace
        end local 3 // com.oracle.truffle.api.source.SourceSection throwLocation
        end local 2 // com.oracle.truffle.api.debug.DebugException dex
        13: .line 376
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent event
        end local 0 // com.oracle.truffle.api.debug.test.DebugExceptionTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lcom/oracle/truffle/api/debug/test/DebugExceptionTest;
            0   14     1            event  Lcom/oracle/truffle/api/debug/SuspendedEvent;
            5   13     2              dex  Lcom/oracle/truffle/api/debug/DebugException;
            6   13     3    throwLocation  Lcom/oracle/truffle/api/source/SourceSection;
           10   13     4  debugStackTrace  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
      Exception table:
        from    to  target  type
           1     3       4  Class com.oracle.truffle.api.debug.DebugException
}
SourceFile: "DebugExceptionTest.java"
InnerClasses:
  public final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
  public final ExceptionBuilder = com.oracle.truffle.api.debug.Breakpoint$ExceptionBuilder 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
  public ThrowNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public TestLanguageException = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode$TestLanguageException of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles