public final class com.oracle.truffle.api.debug.DebugException extends java.lang.RuntimeException
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.DebugException
  super_class: java.lang.RuntimeException
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5017970176581546348

  private static final java.lang.String CAUSE_CAPTION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Caused by: "

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

  private final java.lang.Throwable exception;
    descriptor: Ljava/lang/Throwable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private volatile com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation;
    descriptor: Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent;
    descriptor: Lcom/oracle/truffle/api/debug/SuspendedEvent;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<com.oracle.truffle.api.debug.DebugStackTraceElement> debugStackTrace;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;

  private java.util.List<java.util.List<com.oracle.truffle.api.debug.DebugStackTraceElement>> debugAsyncStacks;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;>;

  private java.lang.StackTraceElement[] javaLikeStackTrace;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 73
            ldc Lcom/oracle/truffle/api/debug/DebugException;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.debug.DebugException.$assertionsDisabled:Z
         3: .line 76
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.api.debug.DebuggerSession, java.lang.String, com.oracle.truffle.api.nodes.Node, boolean, com.oracle.truffle.api.debug.DebugException$CatchLocation);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // com.oracle.truffle.api.debug.DebuggerSession session
        start local 2 // java.lang.String message
        start local 3 // com.oracle.truffle.api.nodes.Node throwLocation
        start local 4 // boolean isCatchNodeComputed
        start local 5 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
         0: .line 90
            aload 0 /* this */
            aload 2 /* message */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
         1: .line 91
            aload 0 /* this */
            aload 1 /* session */
            putfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
         2: .line 92
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
         3: .line 93
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.debug.DebugException.preferredLanguage:Lcom/oracle/truffle/api/nodes/LanguageInfo;
         4: .line 94
            aload 0 /* this */
            aload 3 /* throwLocation */
            putfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
         5: .line 95
            aload 0 /* this */
            iload 4 /* isCatchNodeComputed */
            putfield com.oracle.truffle.api.debug.DebugException.isCatchNodeComputed:Z
         6: .line 96
            aload 0 /* this */
            aload 5 /* catchLocation */
            ifnull 7
            aload 5 /* catchLocation */
            aload 1 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.cloneFor:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            goto 8
      StackMap locals: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebuggerSession java.lang.String com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.debug.DebugException$CatchLocation
      StackMap stack: com.oracle.truffle.api.debug.DebugException
         7: aconst_null
      StackMap locals: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebuggerSession java.lang.String com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.debug.DebugException$CatchLocation
      StackMap stack: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebugException$CatchLocation
         8: putfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
         9: .line 98
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokespecial java.lang.RuntimeException.setStackTrace:([Ljava/lang/StackTraceElement;)V
        10: .line 99
            return
        end local 5 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
        end local 4 // boolean isCatchNodeComputed
        end local 3 // com.oracle.truffle.api.nodes.Node throwLocation
        end local 2 // java.lang.String message
        end local 1 // com.oracle.truffle.api.debug.DebuggerSession session
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   11     0                 this  Lcom/oracle/truffle/api/debug/DebugException;
            0   11     1              session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   11     2              message  Ljava/lang/String;
            0   11     3        throwLocation  Lcom/oracle/truffle/api/nodes/Node;
            0   11     4  isCatchNodeComputed  Z
            0   11     5        catchLocation  Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
    MethodParameters:
                     Name  Flags
      session              
      message              
      throwLocation        
      isCatchNodeComputed  
      catchLocation        

  void <init>(com.oracle.truffle.api.debug.DebuggerSession, java.lang.Throwable, com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.Node, boolean, com.oracle.truffle.api.debug.DebugException$CatchLocation);
    descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/Throwable;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // com.oracle.truffle.api.debug.DebuggerSession session
        start local 2 // java.lang.Throwable exception
        start local 3 // com.oracle.truffle.api.nodes.LanguageInfo preferredLanguage
        start local 4 // com.oracle.truffle.api.nodes.Node throwLocation
        start local 5 // boolean isCatchNodeComputed
        start local 6 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
         0: .line 102
            aload 0 /* this */
            aload 2 /* exception */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
         1: .line 103
            aload 0 /* this */
            aload 1 /* session */
            putfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
         2: .line 104
            aload 0 /* this */
            aload 2 /* exception */
            putfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
         3: .line 105
            aload 0 /* this */
            aload 3 /* preferredLanguage */
            putfield com.oracle.truffle.api.debug.DebugException.preferredLanguage:Lcom/oracle/truffle/api/nodes/LanguageInfo;
         4: .line 106
            aload 0 /* this */
            aload 4 /* throwLocation */
            putfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
         5: .line 107
            aload 0 /* this */
            iload 5 /* isCatchNodeComputed */
            putfield com.oracle.truffle.api.debug.DebugException.isCatchNodeComputed:Z
         6: .line 108
            aload 0 /* this */
            aload 6 /* catchLocation */
            ifnull 7
            aload 6 /* catchLocation */
            aload 1 /* session */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.cloneFor:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            goto 8
      StackMap locals: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebuggerSession java.lang.Throwable com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.debug.DebugException$CatchLocation
      StackMap stack: com.oracle.truffle.api.debug.DebugException
         7: aconst_null
      StackMap locals: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebuggerSession java.lang.Throwable com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.debug.DebugException$CatchLocation
      StackMap stack: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.DebugException$CatchLocation
         8: putfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
         9: .line 110
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokespecial java.lang.RuntimeException.setStackTrace:([Ljava/lang/StackTraceElement;)V
        10: .line 111
            return
        end local 6 // com.oracle.truffle.api.debug.DebugException$CatchLocation catchLocation
        end local 5 // boolean isCatchNodeComputed
        end local 4 // com.oracle.truffle.api.nodes.Node throwLocation
        end local 3 // com.oracle.truffle.api.nodes.LanguageInfo preferredLanguage
        end local 2 // java.lang.Throwable exception
        end local 1 // com.oracle.truffle.api.debug.DebuggerSession session
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   11     0                 this  Lcom/oracle/truffle/api/debug/DebugException;
            0   11     1              session  Lcom/oracle/truffle/api/debug/DebuggerSession;
            0   11     2            exception  Ljava/lang/Throwable;
            0   11     3    preferredLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0   11     4        throwLocation  Lcom/oracle/truffle/api/nodes/Node;
            0   11     5  isCatchNodeComputed  Z
            0   11     6        catchLocation  Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
    MethodParameters:
                     Name  Flags
      session              
      exception            
      preferredLanguage    
      throwLocation        
      isCatchNodeComputed  
      catchLocation        

  void setSuspendedEvent(com.oracle.truffle.api.debug.SuspendedEvent);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
         0: .line 114
            getstatic com.oracle.truffle.api.debug.DebugException.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            ifnull 3
         2: .line 116
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            aload 1 /* suspendedEvent */
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.setSuspendedEvent:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
         3: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suspendedEvent */
            putfield com.oracle.truffle.api.debug.DebugException.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
         4: .line 119
            return
        end local 1 // com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/api/debug/DebugException;
            0    5     1  suspendedEvent  Lcom/oracle/truffle/api/debug/SuspendedEvent;
    MethodParameters:
                Name  Flags
      suspendedEvent  

  java.lang.Throwable getRawException();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 122
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebugException;

  public java.lang.Throwable fillInStackTrace();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 134
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebugException;

  public void setStackTrace(java.lang.StackTraceElement[]);
    descriptor: ([Ljava/lang/StackTraceElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // java.lang.StackTraceElement[] stackTrace
         0: .line 146
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 147
      StackMap locals: int
      StackMap stack:
            aload 1 /* stackTrace */
            iload 2 /* i */
            aaload
            ifnonnull 4
         3: .line 148
            new java.lang.NullPointerException
            dup
            new java.lang.StringBuilder
            dup
            ldc "stackTrace["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* 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;
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 146
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* stackTrace */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 151
            return
        end local 1 // java.lang.StackTraceElement[] stackTrace
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/api/debug/DebugException;
            0    7     1  stackTrace  [Ljava/lang/StackTraceElement;
            1    6     2           i  I
    MethodParameters:
            Name  Flags
      stackTrace  

  public java.lang.StackTraceElement[] getStackTrace();
    descriptor: ()[Ljava/lang/StackTraceElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 162
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.javaLikeStackTrace:[Ljava/lang/StackTraceElement;
            ifnonnull 11
         1: .line 163
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.isInternalError:()Z
            ifeq 3
         2: .line 164
            aload 0 /* this */
            invokespecial java.lang.RuntimeException.getStackTrace:()[Ljava/lang/StackTraceElement;
            areturn
         3: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            astore 1 /* debugStack */
        start local 1 // java.util.List debugStack
         4: .line 167
            aload 1 /* debugStack */
            invokeinterface java.util.List.size:()I
            istore 2 /* size */
        start local 2 // int size
         5: .line 168
            aload 0 /* this */
            iload 2 /* size */
            anewarray java.lang.StackTraceElement
            putfield com.oracle.truffle.api.debug.DebugException.javaLikeStackTrace:[Ljava/lang/StackTraceElement;
         6: .line 169
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 10
         8: .line 170
      StackMap locals: java.util.List int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.javaLikeStackTrace:[Ljava/lang/StackTraceElement;
            iload 3 /* i */
            aload 1 /* debugStack */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackTraceElement
            invokevirtual com.oracle.truffle.api.debug.DebugStackTraceElement.toTraceElement:()Ljava/lang/StackTraceElement;
            aastore
         9: .line 169
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            iload 2 /* size */
            if_icmplt 8
        end local 3 // int i
        end local 2 // int size
        end local 1 // java.util.List debugStack
        11: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.javaLikeStackTrace:[Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement[].clone:()Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/truffle/api/debug/DebugException;
            4   11     1  debugStack  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
            5   11     2        size  I
            7   11     3           i  I

  public java.util.List<com.oracle.truffle.api.debug.DebugStackTraceElement> getDebugStackTrace();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 183
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.debugStackTrace:Ljava/util/List;
            ifnonnull 32
         1: .line 184
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            ifnull 31
         2: .line 185
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getStackTrace:(Ljava/lang/Throwable;)Ljava/util/List;
            astore 1 /* stackTrace */
        start local 1 // java.util.List stackTrace
         3: .line 186
            aload 1 /* stackTrace */
            invokeinterface java.util.List.size:()I
            istore 2 /* n */
        start local 2 // int n
         4: .line 187
            new java.util.ArrayList
            dup
            iload 2 /* n */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* debugStack */
        start local 3 // java.util.List debugStack
         5: .line 188
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isShowHostStackFrames:()Z
            istore 4 /* hostInfo */
        start local 4 // boolean hostInfo
         6: .line 189
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 16
         8: .line 190
      StackMap locals: com.oracle.truffle.api.debug.DebugException java.util.List int java.util.List int int
      StackMap stack:
            aload 1 /* stackTrace */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleStackTraceElement
            astore 6 /* tframe */
        start local 6 // com.oracle.truffle.api.TruffleStackTraceElement tframe
         9: .line 191
            aload 6 /* tframe */
            invokevirtual com.oracle.truffle.api.TruffleStackTraceElement.getTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 7 /* root */
        start local 7 // com.oracle.truffle.api.nodes.RootNode root
        10: .line 192
            aload 7 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            ifnull 13
        11: .line 193
            aload 3 /* debugStack */
            new com.oracle.truffle.api.debug.DebugStackTraceElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 6 /* tframe */
            invokespecial com.oracle.truffle.api.debug.DebugStackTraceElement.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/TruffleStackTraceElement;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 194
            goto 15
      StackMap locals: com.oracle.truffle.api.TruffleStackTraceElement com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
        13: iload 4 /* hostInfo */
            ifeq 15
        14: .line 195
            aload 3 /* debugStack */
            aconst_null
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.oracle.truffle.api.nodes.RootNode root
        end local 6 // com.oracle.truffle.api.TruffleStackTraceElement tframe
        15: .line 189
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            iload 2 /* n */
            if_icmplt 8
        end local 5 // int i
        17: .line 198
            iload 4 /* hostInfo */
            ifeq 29
        18: .line 199
            aload 0 /* this */
            invokespecial java.lang.RuntimeException.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokestatic com.oracle.truffle.api.debug.SuspendedEvent.cutToHostDepth:([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
            astore 5 /* stack */
        start local 5 // java.lang.StackTraceElement[] stack
        19: .line 200
            getstatic com.oracle.truffle.api.debug.Debugger.ACCESSOR:Lcom/oracle/truffle/api/debug/Debugger$AccessorDebug;
            invokevirtual com.oracle.truffle.api.debug.Debugger$AccessorDebug.engineSupport:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 5 /* stack */
            aload 3 /* debugStack */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            iconst_1
        20: .line 201
            new com.oracle.truffle.api.debug.DebugException$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.debug.DebugException$1.<init>:(Lcom/oracle/truffle/api/debug/DebugException;)V
        21: .line 206
            invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
        22: .line 200
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.mergeHostGuestFrames:([Ljava/lang/StackTraceElement;Ljava/util/Iterator;ZLjava/util/function/Function;Ljava/util/function/Function;)Ljava/util/Iterator;
            astore 6 /* mergedElements */
        start local 6 // java.util.Iterator mergedElements
        23: .line 207
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* elementsList */
        start local 7 // java.util.List elementsList
        24: .line 208
            goto 26
        25: .line 209
      StackMap locals: com.oracle.truffle.api.debug.DebugException java.util.List int java.util.List int java.lang.StackTraceElement[] java.util.Iterator java.util.List
      StackMap stack:
            aload 7 /* elementsList */
            aload 6 /* mergedElements */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.DebugStackTraceElement
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 208
      StackMap locals:
      StackMap stack:
            aload 6 /* mergedElements */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        27: .line 211
            aload 0 /* this */
            aload 7 /* elementsList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.api.debug.DebugException.debugStackTrace:Ljava/util/List;
        end local 7 // java.util.List elementsList
        end local 6 // java.util.Iterator mergedElements
        end local 5 // java.lang.StackTraceElement[] stack
        28: .line 212
            goto 32
        29: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* debugStack */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.api.debug.DebugException.debugStackTrace:Ljava/util/List;
        end local 4 // boolean hostInfo
        end local 3 // java.util.List debugStack
        end local 2 // int n
        end local 1 // java.util.List stackTrace
        30: .line 215
            goto 32
        31: .line 216
      StackMap locals: com.oracle.truffle.api.debug.DebugException
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.oracle.truffle.api.debug.DebugException.debugStackTrace:Ljava/util/List;
        32: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.debugStackTrace:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lcom/oracle/truffle/api/debug/DebugException;
            3   30     1      stackTrace  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
            4   30     2               n  I
            5   30     3      debugStack  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
            6   30     4        hostInfo  Z
            7   17     5               i  I
            9   15     6          tframe  Lcom/oracle/truffle/api/TruffleStackTraceElement;
           10   15     7            root  Lcom/oracle/truffle/api/nodes/RootNode;
           19   28     5           stack  [Ljava/lang/StackTraceElement;
           23   28     6  mergedElements  Ljava/util/Iterator<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
           24   28     7    elementsList  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;

  public java.util.List<java.util.List<com.oracle.truffle.api.debug.DebugStackTraceElement>> getDebugAsynchronousStacks();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 237
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.debugAsyncStacks:Ljava/util/List;
            ifnonnull 5
         1: .line 238
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 1 /* size */
        start local 1 // int size
         2: .line 239
            iload 1 /* size */
            ifne 4
         3: .line 240
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         4: .line 242
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new com.oracle.truffle.api.debug.SuspendedEvent$DebugAsyncStackFrameLists
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getDebugStackTrace:()Ljava/util/List;
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugAsyncStackFrameLists.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/util/List;)V
            putfield com.oracle.truffle.api.debug.DebugException.debugAsyncStacks:Ljava/util/List;
        end local 1 // int size
         5: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.debugAsyncStacks:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/debug/DebugException;
            2    5     1  size  I
    Signature: ()Ljava/util/List<Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackTraceElement;>;>;

  public void printStackTrace();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 254
            aload 0 /* this */
            new java.io.PrintStream
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getDebugger:()Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.err:()Ljava/io/OutputStream;
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
            invokevirtual com.oracle.truffle.api.debug.DebugException.printStackTrace:(Ljava/io/PrintStream;)V
         1: .line 255
            return
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/debug/DebugException;

  public void printStackTrace(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // java.io.PrintStream s
         0: .line 264
            aload 0 /* this */
            aload 1 /* s */
            invokespecial java.lang.RuntimeException.printStackTrace:(Ljava/io/PrintStream;)V
         1: .line 265
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.DebugException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifne 4
         2: .line 266
            aload 1 /* s */
            ldc "Caused by: "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 267
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            aload 1 /* s */
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
         4: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.PrintStream s
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/debug/DebugException;
            0    5     1     s  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      s     

  public void printStackTrace(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // java.io.PrintWriter s
         0: .line 278
            aload 0 /* this */
            aload 1 /* s */
            invokespecial java.lang.RuntimeException.printStackTrace:(Ljava/io/PrintWriter;)V
         1: .line 279
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.DebugException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifne 4
         2: .line 280
            aload 1 /* s */
            ldc "Caused by: "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         3: .line 281
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            aload 1 /* s */
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
         4: .line 283
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.PrintWriter s
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/debug/DebugException;
            0    5     1     s  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      s     

  public boolean isInternalError();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 292
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.DebugException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifne 4
         1: .line 293
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            instanceof com.oracle.truffle.api.debug.DebugException
            ifeq 3
         2: .line 294
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            checkcast com.oracle.truffle.api.debug.DebugException
            invokevirtual com.oracle.truffle.api.debug.DebugException.isInternalError:()Z
            ireturn
         3: .line 296
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 298
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/debug/DebugException;

  public com.oracle.truffle.api.debug.DebugValue getExceptionObject();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebugValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 309
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.DebugException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifne 2
         1: .line 310
            aconst_null
            areturn
         2: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            checkcast com.oracle.truffle.api.TruffleException
            invokeinterface com.oracle.truffle.api.TruffleException.getExceptionObject:()Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         3: .line 313
            aload 1 /* obj */
            ifnonnull 5
         4: .line 314
            aconst_null
            areturn
         5: .line 316
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.preferredLanguage:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 2 /* language */
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         6: .line 317
            aload 2 /* language */
            ifnonnull 10
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            ifnull 10
         7: .line 318
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* throwRoot */
        start local 3 // com.oracle.truffle.api.nodes.RootNode throwRoot
         8: .line 319
            aload 3 /* throwRoot */
            ifnull 10
         9: .line 320
            aload 3 /* throwRoot */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 2 /* language */
        end local 3 // com.oracle.truffle.api.nodes.RootNode throwRoot
        10: .line 323
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            new com.oracle.truffle.api.debug.DebugValue$HeapValue
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            aload 2 /* language */
            aconst_null
            aload 1 /* obj */
            invokespecial com.oracle.truffle.api.debug.DebugValue$HeapValue.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/String;Ljava/lang/Object;)V
            areturn
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/oracle/truffle/api/debug/DebugException;
            3   11     1        obj  Ljava/lang/Object;
            6   11     2   language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            8   10     3  throwRoot  Lcom/oracle/truffle/api/nodes/RootNode;

  public com.oracle.truffle.api.source.SourceSection getThrowLocation();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 333
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            astore 1 /* interop */
        start local 1 // com.oracle.truffle.api.interop.InteropLibrary interop
         1: .line 334
            aload 1 /* interop */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
            ifeq 6
            aload 1 /* interop */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 336
            aload 1 /* interop */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
         3: areturn
         4: .line 337
      StackMap locals: com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 2 /* ume */
        start local 2 // com.oracle.truffle.api.interop.UnsupportedMessageException ume
         5: .line 338
            aload 2 /* ume */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            pop
        end local 2 // com.oracle.truffle.api.interop.UnsupportedMessageException ume
         6: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            ifnull 8
         7: .line 342
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
         8: .line 344
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/api/debug/DebugException;
            1    9     1  interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            5    6     2      ume  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException

  public com.oracle.truffle.api.debug.DebugException$CatchLocation getCatchLocation();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 356
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.isCatchNodeComputed:Z
            ifne 13
         1: .line 357
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 358
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.isCatchNodeComputed:Z
            ifne 9
         3: .line 359
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.DebugException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifeq 8
         4: .line 360
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.exception:Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.debug.BreakpointExceptionFilter.getCatchNode:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            putfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
         5: .line 361
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            ifnull 8
         6: .line 362
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.setSuspendedEvent:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
         7: .line 363
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
            invokevirtual com.oracle.truffle.api.debug.DebugException$CatchLocation.cloneFor:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            putfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
         8: .line 366
      StackMap locals: com.oracle.truffle.api.debug.DebugException
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.debug.DebugException.isCatchNodeComputed:Z
         9: .line 357
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.catchLocation:Lcom/oracle/truffle/api/debug/DebugException$CatchLocation;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/oracle/truffle/api/debug/DebugException;
      Exception table:
        from    to  target  type
           2    10      11  any
          11    12      11  any

  public java.lang.Throwable getRawException(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.debug.DebugException this
        start local 1 // java.lang.Class languageClass
         0: .line 387
            aload 1 /* languageClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 388
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getThrowLocationNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 2 /* rootNode */
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
         2: .line 389
            aload 2 /* rootNode */
            ifnonnull 4
         3: .line 390
            aconst_null
            areturn
         4: .line 393
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            getstatic com.oracle.truffle.api.debug.Debugger.ACCESSOR:Lcom/oracle/truffle/api/debug/Debugger$AccessorDebug;
            invokevirtual com.oracle.truffle.api.debug.Debugger$AccessorDebug.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 2 /* rootNode */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getLanguage:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/TruffleLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.api.TruffleLanguage language
         5: .line 394
            aload 3 /* language */
            ifnull 6
            aload 3 /* language */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* languageClass */
            if_acmpne 6
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.debug.DebugException.getRawException:()Ljava/lang/Throwable;
            goto 7
      StackMap locals: com.oracle.truffle.api.TruffleLanguage
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: areturn
        end local 3 // com.oracle.truffle.api.TruffleLanguage language
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/api/debug/DebugException;
            0    8     1  languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
            2    8     2       rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            5    8     3       language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Throwable;
    MethodParameters:
               Name  Flags
      languageClass  

  com.oracle.truffle.api.nodes.Node getThrowLocationNode();
    descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.DebugException this
         0: .line 398
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.DebugException.throwLocation:Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 0 // com.oracle.truffle.api.debug.DebugException this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/debug/DebugException;

  private static boolean isTruffleException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 459
            aload 0 /* t */
            ifnull 1
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* t */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     
}
SourceFile: "DebugException.java"
NestMembers:
  com.oracle.truffle.api.debug.DebugException$1  com.oracle.truffle.api.debug.DebugException$CatchLocation
InnerClasses:
  com.oracle.truffle.api.debug.DebugException$1
  public final CatchLocation = com.oracle.truffle.api.debug.DebugException$CatchLocation of com.oracle.truffle.api.debug.DebugException
  HeapValue = com.oracle.truffle.api.debug.DebugValue$HeapValue of com.oracle.truffle.api.debug.DebugValue
  final AccessorDebug = com.oracle.truffle.api.debug.Debugger$AccessorDebug of com.oracle.truffle.api.debug.Debugger
  final DebugAsyncStackFrameLists = com.oracle.truffle.api.debug.SuspendedEvent$DebugAsyncStackFrameLists of com.oracle.truffle.api.debug.SuspendedEvent
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument