public final class com.oracle.truffle.api.TruffleStackTrace extends java.lang.Exception
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.TruffleStackTrace
super_class: java.lang.Exception
{
private static final long causeFieldIndex;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.api.TruffleStackTrace EMPTY;
descriptor: Lcom/oracle/truffle/api/TruffleStackTrace;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> frames;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
private final int lazyFrames;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Exception materializedHostException;
descriptor: Ljava/lang/Exception;
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=4, locals=2, args_size=0
0: ldc Lcom/oracle/truffle/api/TruffleStackTrace;
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.TruffleStackTrace.$assertionsDisabled:Z
3: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
astore 0
start local 0 4: goto 12
end local 0 StackMap locals:
StackMap stack: java.lang.SecurityException
5: pop
6: ldc Lsun/misc/Unsafe;
ldc "theUnsafe"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 1
start local 1 7: aload 1
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
8: aload 1
ldc Lsun/misc/Unsafe;
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.misc.Unsafe
astore 0
end local 1 start local 0 9: goto 12
end local 0 StackMap locals:
StackMap stack: java.lang.Exception
10: astore 1
start local 1 11: new java.lang.RuntimeException
dup
ldc "exception while trying to get Unsafe.theUnsafe via reflection:"
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 start local 0 12: StackMap locals: sun.misc.Unsafe
StackMap stack:
aload 0
putstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
13: ldc Ljava/lang/Throwable;
ldc "cause"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 1
start local 1 14: getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
end local 1 15: goto 18
StackMap locals:
StackMap stack: java.lang.Exception
16: astore 1
start local 1 17: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 18: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.TruffleStackTrace
dup
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
iconst_0
invokespecial com.oracle.truffle.api.TruffleStackTrace.<init>:(Ljava/util/List;I)V
putstatic com.oracle.truffle.api.TruffleStackTrace.EMPTY:Lcom/oracle/truffle/api/TruffleStackTrace;
return
LocalVariableTable:
Start End Slot Name Signature
4 5 0 unsafe Lsun/misc/Unsafe;
9 10 0 unsafe Lsun/misc/Unsafe;
12 18 0 unsafe Lsun/misc/Unsafe;
7 9 1 theUnsafeInstance Ljava/lang/reflect/Field;
11 12 1 e2 Ljava/lang/Exception;
14 15 1 causeField Ljava/lang/reflect/Field;
17 18 1 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.SecurityException
6 9 10 Class java.lang.Exception
13 15 16 Class java.lang.NoSuchFieldException
13 15 16 Class java.lang.SecurityException
private static java.lang.Throwable getCause(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
invokevirtual sun.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
checkcast java.lang.Throwable
astore 1
start local 1 1: aload 1
aload 0
if_acmpne 2
aconst_null
goto 3
StackMap locals: java.lang.Throwable
StackMap stack:
2: aload 1
StackMap locals:
StackMap stack: java.lang.Throwable
3: areturn
end local 1 4: StackMap locals: java.lang.Throwable
StackMap stack: java.lang.IllegalArgumentException
astore 1
start local 1 5: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
6: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 t Ljava/lang/Throwable;
1 4 1 result Ljava/lang/Throwable;
5 7 1 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
0 3 4 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
t
private static void initCause(java.lang.Throwable, java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
aload 1
invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
1: goto 5
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
2: astore 2
start local 2 3: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
4: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 t Ljava/lang/Throwable;
0 6 1 value Ljava/lang/Throwable;
3 5 2 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
0 1 2 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
t
value
private void <init>(java.util.List<com.oracle.truffle.api.TruffleStackTraceElement>, );
descriptor: (Ljava/util/List;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Exception.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
2: aload 0
iload 2
putfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/TruffleStackTrace;
0 4 1 frames Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
0 4 2 lazyFrames I
Signature: (Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;I)V
MethodParameters:
Name Flags
frames
lazyFrames
private void materializeHostException();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
ifnonnull 2
1: aload 0
new java.lang.Exception
dup
invokespecial java.lang.Exception.<init>:()V
putfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/TruffleStackTrace;
public java.lang.Throwable fillInStackTrace();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/TruffleStackTrace;
java.lang.StackTraceElement[] getInternalStackTrace();
descriptor: ()[Ljava/lang/StackTraceElement;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
astore 1
3: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
ifne 6
5: aload 2
areturn
6: StackMap locals: java.lang.StackTraceElement[]
StackMap stack:
aload 2
arraylength
aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
iadd
anewarray java.lang.StackTraceElement
astore 3
start local 3 7: aload 2
iconst_0
aload 3
aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/TruffleStackTrace;
1 9 1 hostException Ljava/lang/Throwable;
4 9 2 hostFrames [Ljava/lang/StackTraceElement;
7 9 3 extended [Ljava/lang/StackTraceElement;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Attached Guest Language Frames ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
invokeinterface java.util.List.size:()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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/TruffleStackTrace;
public static java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> getStackTrace(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
getfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
areturn
3: StackMap locals: com.oracle.truffle.api.TruffleStackTrace
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 throwable Ljava/lang/Throwable;
1 4 1 stack Lcom/oracle/truffle/api/TruffleStackTrace;
Signature: (Ljava/lang/Throwable;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
throwable
public static java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> getAsynchronousStackTrace(com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "CallTarget must not be null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 1
ldc "Frame must not be null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: getstatic com.oracle.truffle.api.TruffleStackTrace.$assertionsDisabled:Z
ifne 3
aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.hasContext:(Lcom/oracle/truffle/api/CallTarget;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.findAsynchronousFrames:(Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target Lcom/oracle/truffle/api/CallTarget;
0 4 1 frame Lcom/oracle/truffle/api/frame/Frame;
Signature: (Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
target
frame
private static boolean hasContext(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
checkcast com.oracle.truffle.api.RootCallTarget
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 1
start local 1 1: getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
astore 2
start local 2 2: getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
invokevirtual com.oracle.truffle.api.LanguageAccessor.engineSupport:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentContextReference:(Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
ifnull 3
iconst_1
ireturn
StackMap locals: com.oracle.truffle.api.nodes.RootNode java.lang.Object
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target Lcom/oracle/truffle/api/CallTarget;
1 4 1 root Lcom/oracle/truffle/api/nodes/RootNode;
2 4 2 polyglotLanguage Ljava/lang/Object;
MethodParameters:
Name Flags
target
static void materializeHostFrames(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokevirtual com.oracle.truffle.api.TruffleStackTrace.materializeHostException:()V
3: StackMap locals: com.oracle.truffle.api.TruffleStackTrace
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 t Ljava/lang/Throwable;
1 4 1 stack Lcom/oracle/truffle/api/TruffleStackTrace;
MethodParameters:
Name Flags
t
private static com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace findImpl(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleStackTrace.$assertionsDisabled:Z
ifne 1
aload 0
instanceof com.oracle.truffle.api.nodes.ControlFlowException
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 1
start local 1 2: goto 6
3: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
instanceof com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
ifeq 5
4: aload 1
checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 1
6: StackMap locals:
StackMap stack:
aload 1
ifnonnull 3
7: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 t Ljava/lang/Throwable;
2 8 1 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private static java.lang.Throwable findInsertCause(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 6
2: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 2
start local 2 3: aload 2
ifnonnull 5
4: goto 7
5: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
astore 1
end local 2 6: StackMap locals:
StackMap stack:
aload 1
ifnonnull 2
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 t Ljava/lang/Throwable;
1 8 1 lastException Ljava/lang/Throwable;
3 6 2 parentCause Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private static void insert(java.lang.Throwable, com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace);
descriptor: (Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
ifnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.TruffleStackTrace.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 t Ljava/lang/Throwable;
0 5 1 trace Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
MethodParameters:
Name Flags
t
trace
public static com.oracle.truffle.api.TruffleStackTrace fillIn(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.api.nodes.ControlFlowException
ifeq 2
1: getstatic com.oracle.truffle.api.TruffleStackTrace.EMPTY:Lcom/oracle/truffle/api/TruffleStackTrace;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.getOrCreateLazyStackTrace:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
astore 1
start local 1 3: aload 1
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
ifnull 5
4: aload 1
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
areturn
5: StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
StackMap stack:
aload 0
instanceof com.oracle.truffle.api.TruffleException
ifeq 10
6: aload 0
checkcast com.oracle.truffle.api.TruffleException
astore 4
start local 4 7: aload 4
invokeinterface com.oracle.truffle.api.TruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 8: aload 4
invokeinterface com.oracle.truffle.api.TruffleException.getStackTraceElementLimit:()I
istore 2
end local 4 start local 2 9: goto 12
end local 3 end local 2 10: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 11: iconst_m1
istore 2
start local 2 12: StackMap locals: int com.oracle.truffle.api.nodes.Node
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 13: aload 1
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
astore 5
start local 5 14: goto 17
15: StackMap locals: java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement
StackMap stack:
aload 4
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
16: aload 5
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.last:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
astore 5
17: StackMap locals:
StackMap stack:
aload 5
ifnonnull 15
18: aload 4
invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
19: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 20: aload 4
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 8
goto 27
StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List top java.util.Iterator
StackMap stack:
21: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleStackTrace$TracebackElement
astore 7
start local 7 22: aload 7
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.root:Lcom/oracle/truffle/api/RootCallTarget;
ifnull 25
23: aload 6
new com.oracle.truffle.api.TruffleStackTraceElement
dup
aload 3
aload 7
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.root:Lcom/oracle/truffle/api/RootCallTarget;
aload 7
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
invokespecial com.oracle.truffle.api.TruffleStackTraceElement.<init>:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/Frame;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
24: aconst_null
astore 3
25: StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.Iterator
StackMap stack:
aload 7
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.callNode:Lcom/oracle/truffle/api/nodes/Node;
ifnull 27
26: aload 7
getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.callNode:Lcom/oracle/truffle/api/nodes/Node;
astore 3
end local 7 27: StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
28: aload 6
invokeinterface java.util.List.size:()I
istore 7
start local 7 29: iload 2
iload 7
aload 3
aload 6
invokestatic com.oracle.truffle.api.TruffleStackTrace.addStackFrames:(IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
30: aload 1
new com.oracle.truffle.api.TruffleStackTrace
dup
aload 6
iload 7
invokespecial com.oracle.truffle.api.TruffleStackTrace.<init>:(Ljava/util/List;I)V
putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
31: aload 0
invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
arraylength
ifne 33
32: aload 1
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
invokevirtual com.oracle.truffle.api.TruffleStackTrace.materializeHostException:()V
33: StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List int
StackMap stack:
aload 1
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 throwable Ljava/lang/Throwable;
3 34 1 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
9 10 2 stackFrameLimit I
12 34 2 stackFrameLimit I
8 10 3 topCallSite Lcom/oracle/truffle/api/nodes/Node;
11 34 3 topCallSite Lcom/oracle/truffle/api/nodes/Node;
7 9 4 te Lcom/oracle/truffle/api/TruffleException;
13 34 4 elements Ljava/util/ArrayList<Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;>;
14 34 5 currentElement Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
20 34 6 frames Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
22 27 7 element Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
29 34 7 lazyFrames I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
throwable
static void addStackFrameInfo(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/Frame;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof com.oracle.truffle.api.nodes.ControlFlowException
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.polyglot.PolyglotException
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
istore 4
start local 4 5: aload 3
ifnull 8
aload 1
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.isCaptureFramesForTrace:()Z
ifeq 8
6: iload 4
aload 0
aload 1
aload 2
aload 3
invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
invokestatic com.oracle.truffle.api.TruffleStackTrace.callInnerAddStackFrameInfo:(ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
7: goto 9
8: StackMap locals: int
StackMap stack:
iload 4
aload 0
aload 1
aload 2
aconst_null
invokestatic com.oracle.truffle.api.TruffleStackTrace.callInnerAddStackFrameInfo:(ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
9: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 callNode Lcom/oracle/truffle/api/nodes/Node;
0 10 1 root Lcom/oracle/truffle/api/RootCallTarget;
0 10 2 t Ljava/lang/Throwable;
0 10 3 currentFrame Lcom/oracle/truffle/api/frame/Frame;
5 10 4 isTProfiled Z
MethodParameters:
Name Flags
callNode
root
t
currentFrame
private static void callInnerAddStackFrameInfo(boolean, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 0
ifeq 3
1: aload 1
aload 2
aload 3
aload 4
invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
aload 4
invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfoBoundary:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 isTProfiled Z
0 5 1 callNode Lcom/oracle/truffle/api/nodes/Node;
0 5 2 root Lcom/oracle/truffle/api/RootCallTarget;
0 5 3 t Ljava/lang/Throwable;
0 5 4 currentFrame Lcom/oracle/truffle/api/frame/MaterializedFrame;
MethodParameters:
Name Flags
isTProfiled
callNode
root
t
currentFrame
private static void innerAddStackFrameInfoBoundary(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 callNode Lcom/oracle/truffle/api/nodes/Node;
0 2 1 root Lcom/oracle/truffle/api/RootCallTarget;
0 2 2 t Ljava/lang/Throwable;
0 2 3 currentFrame Lcom/oracle/truffle/api/frame/MaterializedFrame;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
callNode
root
t
currentFrame
private static void innerAddStackFrameInfo(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof com.oracle.truffle.api.TruffleException
ifeq 1
aload 2
checkcast com.oracle.truffle.api.TruffleException
invokeinterface com.oracle.truffle.api.TruffleException.isInternalError:()Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
pop
2: return
3: StackMap locals:
StackMap stack:
aload 2
checkcast com.oracle.truffle.api.TruffleException
invokeinterface com.oracle.truffle.api.TruffleException.getStackTraceElementLimit:()I
istore 4
start local 4 4: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.isException:(Ljava/lang/Object;)Z
ifeq 10
5: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.getLazyStackTrace:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
astore 5
start local 5 6: aload 5
ifnonnull 20
7: new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
dup
invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
astore 5
8: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 2
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.setLazyStackTrace:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
9: goto 20
end local 5 10: StackMap locals: int
StackMap stack:
aload 2
invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 6
start local 6 11: aload 6
ifnonnull 15
12: aload 2
new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
dup
invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
dup
astore 5
start local 5 13: invokestatic com.oracle.truffle.api.TruffleStackTrace.insert:(Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
14: goto 20
end local 5 StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.RootCallTarget java.lang.Throwable com.oracle.truffle.api.frame.MaterializedFrame int top java.lang.Throwable
StackMap stack:
15: aload 6
instanceof com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
ifeq 18
16: aload 6
checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
astore 5
start local 5 17: goto 20
end local 5 18: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 6
aload 3
iload 4
invokestatic com.oracle.truffle.api.TruffleStackTrace.addStackFrameInfoSlowPath:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;I)V
19: return
end local 6 start local 5 20: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.RootCallTarget java.lang.Throwable com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
StackMap stack:
aload 0
aload 1
aload 3
aload 5
iload 4
invokestatic com.oracle.truffle.api.TruffleStackTrace.appendLazyStackTrace:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
21: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 callNode Lcom/oracle/truffle/api/nodes/Node;
0 22 1 root Lcom/oracle/truffle/api/RootCallTarget;
0 22 2 t Ljava/lang/Throwable;
0 22 3 currentFrame Lcom/oracle/truffle/api/frame/MaterializedFrame;
4 22 4 stackTraceElementLimit I
6 10 5 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
13 15 5 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
17 18 5 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
20 22 5 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
11 20 6 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
callNode
root
t
currentFrame
private static void addStackFrameInfoSlowPath(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame, int);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokestatic com.oracle.truffle.api.TruffleStackTrace.getOrCreateLazyStackTrace:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
astore 5
start local 5 1: aload 0
aload 1
aload 3
aload 5
iload 4
invokestatic com.oracle.truffle.api.TruffleStackTrace.appendLazyStackTrace:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 callNode Lcom/oracle/truffle/api/nodes/Node;
0 3 1 root Lcom/oracle/truffle/api/RootCallTarget;
0 3 2 t Ljava/lang/Throwable;
0 3 3 currentFrame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 3 4 stackTraceElementLimit I
1 3 5 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
callNode
root
t
currentFrame
stackTraceElementLimit
private static com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace getOrCreateLazyStackTrace(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.isException:(Ljava/lang/Object;)Z
ifeq 6
1: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.getLazyStackTrace:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
astore 1
start local 1 2: aload 1
ifnonnull 5
3: new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
dup
invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
astore 1
4: invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.setLazyStackTrace:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
5: StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
StackMap stack:
aload 1
areturn
end local 1 6: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.findImpl:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
astore 1
start local 1 7: aload 1
ifnonnull 12
8: aload 0
invokestatic com.oracle.truffle.api.TruffleStackTrace.findInsertCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 2
start local 2 9: aload 2
ifnonnull 11
10: aconst_null
areturn
11: StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace java.lang.Throwable
StackMap stack:
aload 2
new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
dup
invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
dup
astore 1
invokestatic com.oracle.truffle.api.TruffleStackTrace.insert:(Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
end local 2 12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 throwable Ljava/lang/Throwable;
2 6 1 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
7 13 1 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
9 12 2 insertCause Ljava/lang/Throwable;
MethodParameters:
Name Flags
throwable
private static void appendLazyStackTrace(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace, int);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
ifnonnull 6
1: iload 4
iflt 3
aload 3
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
iload 4
if_icmplt 3
2: return
3: StackMap locals:
StackMap stack:
aload 3
new com.oracle.truffle.api.TruffleStackTrace$TracebackElement
dup
aload 3
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.TruffleStackTrace$TracebackElement.<init>:(Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
4: aload 1
ifnull 6
aload 1
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.isInternal:()Z
ifne 6
5: aload 3
dup
getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
iconst_1
iadd
putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 callNode Lcom/oracle/truffle/api/nodes/Node;
0 7 1 root Lcom/oracle/truffle/api/RootCallTarget;
0 7 2 currentFrame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 7 3 lazy Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
0 7 4 stackTraceElementLimit I
MethodParameters:
Name Flags
callNode
root
currentFrame
lazy
stackTraceElementLimit
private static void addStackFrames(int, int, com.oracle.truffle.api.nodes.Node, java.util.List<com.oracle.truffle.api.TruffleStackTraceElement>);
descriptor: (IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 0
iflt 2
iload 1
iload 0
if_icmplt 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new com.oracle.truffle.api.TruffleStackTrace$1
dup
iload 1
iload 0
aload 2
aload 3
invokespecial com.oracle.truffle.api.TruffleStackTrace$1.<init>:(IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
pop
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 stackFrameLimit I
0 4 1 lazyFrames I
0 4 2 topCallSite Lcom/oracle/truffle/api/nodes/Node;
0 4 3 frames Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
Signature: (IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;)V
MethodParameters:
Name Flags
stackFrameLimit
lazyFrames
topCallSite final
frames
}
SourceFile: "TruffleStackTrace.java"
NestMembers:
com.oracle.truffle.api.TruffleStackTrace$1 com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace com.oracle.truffle.api.TruffleStackTrace$TracebackElement
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
com.oracle.truffle.api.TruffleStackTrace$1
final LazyStackTrace = com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace of com.oracle.truffle.api.TruffleStackTrace
private final TracebackElement = com.oracle.truffle.api.TruffleStackTrace$TracebackElement of com.oracle.truffle.api.TruffleStackTrace
public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
public abstract ExceptionSupport = com.oracle.truffle.api.impl.Accessor$ExceptionSupport of com.oracle.truffle.api.impl.Accessor
public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor