final class com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable implements java.lang.Iterable<com.oracle.truffle.api.debug.DebugStackFrame>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
super_class: java.lang.Object
{
private final java.lang.StackTraceElement[] hostStack;
descriptor: [Ljava/lang/StackTraceElement;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.api.debug.DebugStackFrame topStackFrame;
descriptor: Lcom/oracle/truffle/api/debug/DebugStackFrame;
flags: (0x0002) ACC_PRIVATE
private java.util.List<com.oracle.truffle.api.debug.DebugStackFrame> otherFrames;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
final com.oracle.truffle.api.debug.SuspendedEvent this$0;
descriptor: Lcom/oracle/truffle/api/debug/SuspendedEvent;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.oracle.truffle.api.debug.SuspendedEvent, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 2
ifeq 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
invokestatic com.oracle.truffle.api.debug.SuspendedEvent.cutToHostDepth:([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
goto 3
StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable com.oracle.truffle.api.debug.SuspendedEvent int
StackMap stack: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
2: aconst_null
StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable com.oracle.truffle.api.debug.SuspendedEvent int
StackMap stack: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable java.lang.StackTraceElement[]
3: putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
0 5 2 hostIncluded Z
MethodParameters:
Name Flags
this$0 final
hostIncluded
private com.oracle.truffle.api.debug.DebugStackFrame getTopStackFrame();
descriptor: ()Lcom/oracle/truffle/api/debug/DebugStackFrame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
ifnonnull 2
1: aload 0
new com.oracle.truffle.api.debug.DebugStackFrame
dup
aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
aconst_null
iconst_0
invokespecial com.oracle.truffle.api.debug.DebugStackFrame.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/frame/FrameInstance;I)V
putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
private java.util.List<com.oracle.truffle.api.debug.DebugStackFrame> getOtherFrames(boolean);
descriptor: (Z)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
ifnonnull 4
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1
dup
aload 0
iload 1
aload 2
invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;ZLjava/util/List;)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
pop
3: aload 0
aload 2
putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
0 5 1 raw Z
2 4 2 frameInstances Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
Signature: (Z)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
MethodParameters:
Name Flags
raw
private boolean hasRootTag(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 2
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 3
aload 2
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.hasTag:(Ljava/lang/Class;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
4: aload 2
ifnonnull 1
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
0 6 1 callNode Lcom/oracle/truffle/api/nodes/Node;
1 6 2 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
callNode
private int getTopFrameIndex();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
getfield com.oracle.truffle.api.debug.SuspendedEvent.context:Lcom/oracle/truffle/api/debug/SuspendedContext;
invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getStackDepth:()I
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
getfield com.oracle.truffle.api.debug.SuspendedEvent.context:Lcom/oracle/truffle/api/debug/SuspendedContext;
invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 3: aload 1
instanceof com.oracle.truffle.api.nodes.RootNode
ifne 4
aload 0
aload 1
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hasRootTag:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifeq 5
4: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
3 6 1 node Lcom/oracle/truffle/api/nodes/Node;
public java.util.Iterator<com.oracle.truffle.api.debug.DebugStackFrame> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
ifnull 6
1: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
astore 1
start local 1 2: 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 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2
dup
aload 0
aload 0
iconst_1
aload 1
invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;ZLjava/util/concurrent/atomic/AtomicInteger;)V
3: iconst_0
new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3
dup
aload 0
aload 1
invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Ljava/util/concurrent/atomic/AtomicInteger;)V
4: invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
5: 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;
areturn
end local 1 6: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator
dup
aload 0
iconst_0
invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
2 6 1 frameDepth Ljava/util/concurrent/atomic/AtomicInteger;
Signature: ()Ljava/util/Iterator<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
static com.oracle.truffle.api.debug.SuspendedEvent access$0(com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;)Lcom/oracle/truffle/api/debug/SuspendedEvent;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Iterable<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
SourceFile: "SuspendedEvent.java"
NestHost: com.oracle.truffle.api.debug.SuspendedEvent
InnerClasses:
final AccessorDebug = com.oracle.truffle.api.debug.Debugger$AccessorDebug of com.oracle.truffle.api.debug.Debugger
private final DebugStackFrameIterable = com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable of com.oracle.truffle.api.debug.SuspendedEvent
com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1
com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2
com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3
private GuestIterator = com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator of com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags