public final class com.oracle.truffle.api.debug.DebuggerSession implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.debug.DebuggerSession
super_class: java.lang.Object
{
private static final java.util.concurrent.atomic.AtomicInteger SESSIONS;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ThreadLocal<java.lang.Boolean> inEvalInContext;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/lang/Boolean;>;
static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_BEFORE;
descriptor: Ljava/util/Set;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;
static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_AFTER;
descriptor: Ljava/util/Set;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;
static final java.util.Set<com.oracle.truffle.api.debug.SuspendAnchor> ANCHOR_SET_ALL;
descriptor: Ljava/util/Set;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SuspendAnchor;>;
private final com.oracle.truffle.api.debug.Debugger debugger;
descriptor: Lcom/oracle/truffle/api/debug/Debugger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.debug.SuspendedCallback callback;
descriptor: Lcom/oracle/truffle/api/debug/SuspendedCallback;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<com.oracle.truffle.api.debug.SourceElement> sourceElements;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/api/debug/SourceElement;>;
private final boolean hasExpressionElement;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean hasRootElement;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<com.oracle.truffle.api.debug.Breakpoint> breakpoints;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
private final java.util.Collection<com.oracle.truffle.api.debug.Breakpoint> breakpointsUnresolved;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/debug/Breakpoint;>;
private volatile boolean breakpointsUnresolvedEmpty;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> syntaxElementsBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;
final java.util.Set<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory>> allBindings;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;>;
private final java.util.concurrent.ConcurrentHashMap<java.lang.Thread, com.oracle.truffle.api.debug.SuspendedEvent> currentSuspendedEventMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SuspendedEvent;>;
private final java.util.concurrent.ConcurrentHashMap<java.lang.Thread, com.oracle.truffle.api.debug.SteppingStrategy> strategyMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;>;
private volatile boolean suspendNext;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean suspendAll;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean stepping;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean ignoreLanguageContextInitialization;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean includeInternal;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean showHostStackFrames;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private java.util.function.Predicate<com.oracle.truffle.api.source.Source> sourceFilter;
descriptor: Ljava/util/function/Predicate;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
private volatile com.oracle.truffle.api.Assumption suspensionFilterUnchanged;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean alwaysHaltBreakpointsActive;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean locationBreakpointsActive;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.debug.DebuggerSession$StableBoolean exceptionBreakpointsActive;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.debug.DebuggerExecutionLifecycle executionLifecycle;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.lang.ThreadLocal<com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension> threadSuspensions;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0010) ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;>;
private final com.oracle.truffle.api.debug.DebugSourcesResolver sources;
descriptor: Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int sessionId;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/debug/DebuggerSession;
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.DebuggerSession.$assertionsDisabled:Z
3: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putstatic com.oracle.truffle.api.debug.DebuggerSession.SESSIONS:Ljava/util/concurrent/atomic/AtomicInteger;
4: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
5: getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_BEFORE:Ljava/util/Set;
6: getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_AFTER:Ljava/util/Set;
7: new java.util.HashSet
dup
iconst_2
anewarray com.oracle.truffle.api.debug.SuspendAnchor
dup
iconst_0
getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
aastore
dup
iconst_1
getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic com.oracle.truffle.api.debug.DebuggerSession.ANCHOR_SET_ALL:Ljava/util/Set;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.api.debug.Debugger, com.oracle.truffle.api.debug.SuspendedCallback, com.oracle.truffle.api.debug.SourceElement[]);
descriptor: (Lcom/oracle/truffle/api/debug/Debugger;Lcom/oracle/truffle/api/debug/SuspendedCallback;[Lcom/oracle/truffle/api/debug/SourceElement;)V
flags: (0x0080) ACC_VARARGS
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
2: aload 0
invokestatic java.util.concurrent.ConcurrentHashMap.newKeySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
3: aload 0
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
4: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
putfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
5: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
7: aload 0
new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
dup
iconst_0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
putfield com.oracle.truffle.api.debug.DebuggerSession.stepping:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
8: aload 0
new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
dup
iconst_0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
putfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
9: aload 0
iconst_0
putfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
10: aload 0
iconst_0
putfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
11: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Unchanged suspension filter"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
12: aload 0
new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
dup
iconst_1
invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
putfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
13: aload 0
new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
dup
iconst_1
invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
putfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
14: aload 0
new com.oracle.truffle.api.debug.DebuggerSession$StableBoolean
dup
iconst_1
invokespecial com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.<init>:(Z)V
putfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
15: aload 0
new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
16: aload 0
getstatic com.oracle.truffle.api.debug.DebuggerSession.SESSIONS:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
putfield com.oracle.truffle.api.debug.DebuggerSession.sessionId:I
17: aload 0
aload 1
putfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
18: aload 0
aload 2
putfield com.oracle.truffle.api.debug.DebuggerSession.callback:Lcom/oracle/truffle/api/debug/SuspendedCallback;
19: aload 3
arraylength
tableswitch { // 0 - 1
0: 20
1: 22
default: 24
}
20: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Debugger com.oracle.truffle.api.debug.SuspendedCallback com.oracle.truffle.api.debug.SourceElement[]
StackMap stack:
aload 0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
21: goto 25
22: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
aaload
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
new java.util.LinkedHashSet
dup
aload 3
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
getstatic com.oracle.truffle.api.debug.SourceElement.EXPRESSION:Lcom/oracle/truffle/api/debug/SourceElement;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
putfield com.oracle.truffle.api.debug.DebuggerSession.hasExpressionElement:Z
26: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
getstatic com.oracle.truffle.api.debug.SourceElement.ROOT:Lcom/oracle/truffle/api/debug/SourceElement;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
putfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
27: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 29
28: aload 0
ldc "open with callback %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals:
StackMap stack:
aload 0
new com.oracle.truffle.api.debug.DebugSourcesResolver
dup
aload 1
invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokespecial com.oracle.truffle.api.debug.DebugSourcesResolver.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
putfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
30: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.addBindings:(ZLjava/util/function/Predicate;)V
31: aload 0
new com.oracle.truffle.api.debug.DebuggerExecutionLifecycle
dup
aload 0
invokespecial com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
putfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
32: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 33 1 debugger Lcom/oracle/truffle/api/debug/Debugger;
0 33 2 callback Lcom/oracle/truffle/api/debug/SuspendedCallback;
0 33 3 sourceElements [Lcom/oracle/truffle/api/debug/SourceElement;
MethodParameters:
Name Flags
debugger
callback
sourceElements
private void trace(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokestatic com.oracle.truffle.api.debug.Debugger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 msg Ljava/lang/String;
0 2 2 parameters [Ljava/lang/Object;
MethodParameters:
Name Flags
msg
parameters
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "Session[id=%s]"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sessionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public com.oracle.truffle.api.debug.Debugger getDebugger();
descriptor: ()Lcom/oracle/truffle/api/debug/Debugger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public com.oracle.truffle.api.debug.DebugScope getTopScope(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger: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.getLanguages:()Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getScope:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
astore 3
start local 3 4: aload 3
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals: java.lang.Object
StackMap stack:
new com.oracle.truffle.api.debug.DebugScope
dup
aload 3
aload 0
aload 2
invokespecial com.oracle.truffle.api.debug.DebugScope.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
7: areturn
end local 3 8: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.lang.String com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack: java.lang.ThreadDeath
astore 3
start local 3 9: aload 3
athrow
end local 3 10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 11: new com.oracle.truffle.api.debug.DebugException
dup
aload 0
aload 3
aload 2
aconst_null
iconst_1
aconst_null
invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(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
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 12 1 languageId Ljava/lang/String;
1 12 2 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
4 8 3 scope Ljava/lang/Object;
9 10 3 td Ljava/lang/ThreadDeath;
11 12 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
3 5 8 Class java.lang.ThreadDeath
6 7 8 Class java.lang.ThreadDeath
3 5 10 Class java.lang.Throwable
6 7 10 Class java.lang.Throwable
Exceptions:
throws com.oracle.truffle.api.debug.DebugException
MethodParameters:
Name Flags
languageId
public java.util.Map<java.lang.String, ? extends com.oracle.truffle.api.debug.DebugValue> getExportedSymbols();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.api.debug.DebuggerSession$1
dup
aload 0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$1.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
Signature: ()Ljava/util/Map<Ljava/lang/String;+Lcom/oracle/truffle/api/debug/DebugValue;>;
public void setShowHostStackFrames(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 showHostStackFrames Z
MethodParameters:
Name Flags
showHostStackFrames
boolean isShowHostStackFrames();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.showHostStackFrames:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public void setSteppingFilter(com.oracle.truffle.api.debug.SuspensionFilter);
descriptor: (Lcom/oracle/truffle/api/debug/SuspensionFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
aload 1
invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.isIgnoreLanguageContextInitialization:()Z
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
istore 3
start local 3 3: aload 0
aload 1
invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.isInternalIncluded:()Z
putfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
4: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
astore 4
start local 4 5: aload 0
aload 1
invokevirtual com.oracle.truffle.api.debug.SuspensionFilter.getSourcePredicate:()Ljava/util/function/Predicate;
putfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
7: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Unchanged suspension filter"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
8: iload 3
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
if_icmpne 9
aload 4
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
if_acmpeq 11
9: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.removeBindings:()V
10: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.addBindings:(ZLjava/util/function/Predicate;)V
end local 4 end local 3 11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 16 1 steppingFilter Lcom/oracle/truffle/api/debug/SuspensionFilter;
3 11 3 oldIncludeInternal Z
5 11 4 oldSourceFilter Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
Exception table:
from to target type
2 12 13 any
13 14 13 any
MethodParameters:
Name Flags
steppingFilter
boolean isIncludeInternal();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
boolean isSourceFilteredOut(com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/source/Source;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceFilter:Ljava/util/function/Predicate;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 3
iconst_0
goto 4
StackMap locals: java.util.function.Predicate
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: ireturn
5: StackMap locals:
StackMap stack:
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/DebuggerSession;
0 6 1 source Lcom/oracle/truffle/api/source/Source;
1 6 2 filter Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
MethodParameters:
Name Flags
source
com.oracle.truffle.api.Assumption getSuspensionFilterUnchangedAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspensionFilterUnchanged:Lcom/oracle/truffle/api/Assumption;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public synchronized void suspendNextExecution();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "suspend next execution"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
5: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public boolean suspendHere(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SuspendedEvent
astore 2
start local 2 1: aload 2
ifnull 3
2: new java.lang.IllegalStateException
dup
ldc "Suspended already"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent
StackMap stack:
aconst_null
astore 3
start local 3 4: aload 1
ifnull 8
5: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 3
6: aload 3
ifnonnull 8
7: new java.lang.IllegalArgumentException
dup
ldc "The node %s does not have a root."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: com.oracle.truffle.api.nodes.RootNode
StackMap stack:
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
invokeinterface com.oracle.truffle.api.TruffleRuntime.getCurrentFrame:()Lcom/oracle/truffle/api/frame/FrameInstance;
astore 4
start local 4 9: aload 4
ifnonnull 11
10: iconst_0
ireturn
11: StackMap locals: com.oracle.truffle.api.frame.FrameInstance
StackMap stack:
aload 4
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
checkcast com.oracle.truffle.api.RootCallTarget
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 5
start local 5 12: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
ifne 18
13: aload 5
invokevirtual com.oracle.truffle.api.nodes.RootNode.isInternal:()Z
ifeq 18
14: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new com.oracle.truffle.api.debug.DebuggerSession$2
dup
aload 0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$2.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameInstance
astore 4
15: aload 4
ifnonnull 17
16: iconst_0
ireturn
17: StackMap locals: com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 4
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
checkcast com.oracle.truffle.api.RootCallTarget
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 5
18: StackMap locals:
StackMap stack:
aload 3
ifnull 20
aload 3
aload 5
if_acmpeq 20
19: new java.lang.IllegalArgumentException
dup
ldc "The node %s belongs to a root %s, which is different from the current root %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 3
aastore
dup
iconst_2
aload 5
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 6
start local 6 21: aload 6
ifnonnull 25
22: aload 1
astore 6
23: aload 6
ifnonnull 25
24: aload 5
astore 6
25: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 1
ifnull 27
aload 1
aload 6
if_acmpeq 27
26: new java.lang.IllegalArgumentException
dup
ldc "The node %s does not match the current known call node %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 6
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 6
invokestatic com.oracle.truffle.api.instrumentation.InstrumentableNode.findInstrumentableParent:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
astore 7
start local 7 28: aload 7
ifnull 30
29: aload 7
astore 6
30: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 4
getstatic com.oracle.truffle.api.frame.FrameInstance$FrameAccess.READ_WRITE:Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getFrame:(Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;)Lcom/oracle/truffle/api/frame/Frame;
invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
astore 8
start local 8 31: aload 6
aconst_null
invokestatic com.oracle.truffle.api.debug.SuspendedContext.create:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/ThreadDeath;)Lcom/oracle/truffle/api/debug/SuspendedContext;
astore 9
start local 9 32: aload 0
aload 9
getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
aload 8
aconst_null
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
pop
33: iconst_1
ireturn
end local 9 end local 8 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 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 34 1 node Lcom/oracle/truffle/api/nodes/Node;
1 34 2 event Lcom/oracle/truffle/api/debug/SuspendedEvent;
4 34 3 nodeRoot Lcom/oracle/truffle/api/nodes/RootNode;
9 34 4 frameInstance Lcom/oracle/truffle/api/frame/FrameInstance;
12 34 5 root Lcom/oracle/truffle/api/nodes/RootNode;
21 34 6 callNode Lcom/oracle/truffle/api/nodes/Node;
28 34 7 icallNode Lcom/oracle/truffle/api/nodes/Node;
31 34 8 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
32 34 9 context Lcom/oracle/truffle/api/debug/SuspendedContext;
MethodParameters:
Name Flags
node
public void suspend(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "suspend thread %s "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
iconst_1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 6 1 t Ljava/lang/Thread;
MethodParameters:
Name Flags
t
public synchronized void suspendAll();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "suspend all threads"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
5: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
invokevirtual java.util.concurrent.ConcurrentHashMap$KeySetView.iterator:()Ljava/util/Iterator;
astore 2
goto 11
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 1
start local 1 7: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SteppingStrategy
astore 3
start local 3 8: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 9
aload 3
ifnonnull 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.lang.Thread java.util.Iterator com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isDone:()Z
ifne 10
aload 3
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isConsumed:()Z
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
iconst_0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
end local 3 end local 1 11: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
12: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
7 11 1 t Ljava/lang/Thread;
8 11 3 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
public synchronized void resumeAll();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "resume all threads"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.clearStrategies:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
public synchronized void resume(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "resume threads"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createContinue:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
iconst_1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 6 1 t Ljava/lang/Thread;
MethodParameters:
Name Flags
t
private synchronized void setSteppingStrategy(java.lang.Thread, com.oracle.truffle.api.debug.SteppingStrategy, boolean);
descriptor: (Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 3
aload 2
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SteppingStrategy
astore 4
start local 4 4: aload 4
aload 2
if_acmpeq 9
5: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 7
6: aload 0
ldc "set stepping for thread: %s with strategy: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
7: StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
iload 3
ifeq 9
8: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()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 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 10 1 thread Ljava/lang/Thread;
0 10 2 strategy Lcom/oracle/truffle/api/debug/SteppingStrategy;
0 10 3 updateStepping Z
4 10 4 oldStrategy Lcom/oracle/truffle/api/debug/SteppingStrategy;
MethodParameters:
Name Flags
thread
strategy
updateStepping
private synchronized void clearStrategies();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
1: aload 0
iconst_0
putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
3: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.updateStepping:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
private com.oracle.truffle.api.debug.SteppingStrategy getSteppingStrategy(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SteppingStrategy
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 value Ljava/lang/Thread;
MethodParameters:
Name Flags
value
private void updateStepping();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
ifne 2
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
ifne 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: istore 1
start local 1 4: iload 1
ifne 13
5: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
invokevirtual java.util.concurrent.ConcurrentHashMap$KeySetView.iterator:()Ljava/util/Iterator;
astore 3
goto 12
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 2
start local 2 7: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.strategyMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SteppingStrategy
astore 4
start local 4 8: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 9
aload 4
ifnonnull 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.lang.Thread java.util.Iterator com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isDone:()Z
ifne 12
10: iconst_1
istore 1
11: goto 13
end local 4 end local 2 12: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
13: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.stepping:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
iload 1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
4 15 1 needsStepping Z
7 12 2 t Ljava/lang/Thread;
8 12 4 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
void setThreadSuspendEnabled(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 3
1: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
getstatic com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.DISABLED:Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.remove:()V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 5 1 enabled Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
enabled
private void addBindings(boolean, java.util.function.Predicate<com.oracle.truffle.api.source.Source>);
descriptor: (ZLjava/util/function/Predicate;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
ifnonnull 21
1: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 18
2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
ifeq 3
iconst_0
goto 4
StackMap locals:
StackMap stack: int
3: iconst_1
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate
StackMap stack: int int
4: iadd
anewarray java.lang.Class
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate java.lang.Class[] int top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SourceElement
astore 5
start local 5 8: aload 3
iload 4
iinc 4 1
aload 5
invokevirtual com.oracle.truffle.api.debug.SourceElement.getTag:()Ljava/lang/Class;
aastore
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 11
iload 4
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
if_icmpeq 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int java.util.function.Predicate java.lang.Class[] int
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.hasRootElement:Z
ifne 13
12: aload 3
iload 4
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
aastore
13: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 1
aload 2
new com.oracle.truffle.api.debug.DebuggerSession$3
dup
aload 0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$3.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
14: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.hasExpressionElement:Z
aload 3
15: invokevirtual com.oracle.truffle.api.debug.DebuggerSession.createBinding:(ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
16: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 end local 3 17: goto 21
18: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 1
aload 2
new com.oracle.truffle.api.debug.DebuggerSession$4
dup
aload 0
invokespecial com.oracle.truffle.api.debug.DebuggerSession$4.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
19: iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
aastore
20: invokevirtual com.oracle.truffle.api.debug.DebuggerSession.createBinding:(ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 22 1 includeInternalCode Z
0 22 2 sFilter Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
5 17 3 syntaxTags [Ljava/lang/Class;
6 17 4 i I
8 9 5 element Lcom/oracle/truffle/api/debug/SourceElement;
Signature: (ZLjava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;)V
MethodParameters:
Name Flags
includeInternalCode
sFilter
private com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> createBinding(boolean, java.util.function.Predicate<com.oracle.truffle.api.source.Source>, com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory, boolean, java.lang.Class<?>[]);
descriptor: (ZLjava/util/function/Predicate;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
astore 6
start local 6 1: aload 6
iload 1
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.includeInternal:(Z)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
pop
2: aload 2
ifnull 4
3: aload 6
new com.oracle.truffle.api.debug.DebuggerSession$5
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.debug.DebuggerSession$5.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/util/function/Predicate;)V
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.sourceIs:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$SourcePredicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
pop
4: StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder
StackMap stack:
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 7
start local 7 5: iload 4
ifeq 7
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 7
aload 7
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
7: StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 7
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
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 8 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 8 1 includeInternalCode Z
0 8 2 sFilter Ljava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;
0 8 3 factory Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;
0 8 4 onInput Z
0 8 5 tags [Ljava/lang/Class;
1 8 6 builder Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
5 8 7 ssf Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
Signature: (ZLjava/util/function/Predicate<Lcom/oracle/truffle/api/source/Source;>;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;Z[Ljava/lang/Class<*>;)Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;
MethodParameters:
Name Flags
includeInternalCode
sFilter
factory
onInput
tags
private void removeBindings();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
ifnull 7
2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
4: aload 0
aconst_null
putfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
5: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 7
6: aload 0
ldc "disabled stepping"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
java.util.Set<com.oracle.truffle.api.debug.SourceElement> getSourceElements();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sourceElements:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
Signature: ()Ljava/util/Set<Lcom/oracle/truffle/api/debug/SourceElement;>;
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 2
1: aload 0
ldc "close session"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "session already closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.clearStrategies:()V
5: aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.removeBindings:()V
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.Iterator
StackMap stack:
7: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.Breakpoint
astore 1
start local 1 8: aload 1
aload 0
invokevirtual com.oracle.truffle.api.debug.Breakpoint.sessionClosed:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
end local 1 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
11: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
12: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
aload 0
invokevirtual com.oracle.truffle.api.debug.Debugger.disposedSession:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
13: aload 0
iconst_1
putfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
8 9 1 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
public java.util.List<com.oracle.truffle.api.debug.Breakpoint> getBreakpoints();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "session already closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
dup
astore 2
monitorenter
3: new java.util.ArrayList
dup
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 1
start local 1 4: aload 2
monitorexit
5: goto 8
end local 1 StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top java.util.List
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
start local 1 8: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.List
StackMap stack:
aload 1
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
4 6 1 b Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
8 9 1 b Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
Exception table:
from to target type
3 5 6 any
6 7 6 any
Signature: ()Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
void visitBreakpoints(java.util.function.Consumer<com.oracle.truffle.api.debug.Breakpoint>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
dup
astore 2
monitorenter
1: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.function.Consumer java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.Breakpoint
astore 3
start local 3 3: aload 1
aload 3
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 2
monitorexit
6: goto 9
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession java.util.function.Consumer java.util.List
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 10 1 consumer Ljava/util/function/Consumer<Lcom/oracle/truffle/api/debug/Breakpoint;>;
3 4 3 b Lcom/oracle/truffle/api/debug/Breakpoint;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (Ljava/util/function/Consumer<Lcom/oracle/truffle/api/debug/Breakpoint;>;)V
MethodParameters:
Name Flags
consumer
public void setBreakpointsActive(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.VALUES:[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession int top int int com.oracle.truffle.api.debug.Breakpoint$Kind[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 2
iload 1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 6 1 active Z
2 3 2 kind Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
active
public void setBreakpointsActive(com.oracle.truffle.api.debug.Breakpoint$Kind, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint$Kind;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:()[I
aload 1
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 5
2: 1
3: 3
default: 7
}
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
iload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
2: goto 9
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
iload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
iload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.set:(Z)V
6: goto 9
7: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
8: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unhandled breakpoint kind: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 10 1 breakpointKind Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
0 10 2 active Z
MethodParameters:
Name Flags
breakpointKind
active
public boolean isBreakpointsActive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.VALUES:[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession top int int com.oracle.truffle.api.debug.Breakpoint$Kind[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 0
aload 1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
ifeq 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
2 4 1 kind Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public boolean isBreakpointsActive(com.oracle.truffle.api.debug.Breakpoint$Kind);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:()[I
aload 1
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 3
2: 1
3: 2
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.locationBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.exceptionBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.alwaysHaltBreakpointsActive:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
ireturn
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
5: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unhandled breakpoint kind: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 6 1 breakpointKind Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
MethodParameters:
Name Flags
breakpointKind
public synchronized com.oracle.truffle.api.debug.Breakpoint install(com.oracle.truffle.api.debug.Breakpoint);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;Z)V
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
MethodParameters:
Name Flags
breakpoint
synchronized void install(com.oracle.truffle.api.debug.Breakpoint, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;Z)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 4
1: iload 2
ifne 3
2: new java.lang.IllegalStateException
dup
ldc "Debugger session is already closed. Cannot install new breakpoints."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
iload 2
ifne 8
5: aload 1
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolvable:()Z
ifeq 8
aload 1
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
ifne 8
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
7: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
8: StackMap locals:
StackMap stack:
aload 1
aload 0
iload 2
ifeq 9
iconst_0
goto 10
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Breakpoint int
StackMap stack: com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.api.debug.DebuggerSession
9: iconst_1
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.Breakpoint int
StackMap stack: com.oracle.truffle.api.debug.Breakpoint com.oracle.truffle.api.debug.DebuggerSession int
10: invokevirtual com.oracle.truffle.api.debug.Breakpoint.install:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Z
ifne 14
11: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
pop
12: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
13: return
14: StackMap locals:
StackMap stack:
iload 2
ifne 16
15: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 18
17: aload 0
ldc "installed session breakpoint %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 19 1 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
0 19 2 global Z
MethodParameters:
Name Flags
breakpoint
global
private void resolveUnresolvedBreakpoints(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 2
start local 2 3: aload 2
ifnull 10
4: aload 2
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 3
start local 3 5: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.Source top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.Breakpoint
astore 4
start local 4 7: aload 4
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isEnabled:()Z
ifeq 9
8: aload 4
aload 3
invokevirtual com.oracle.truffle.api.debug.Breakpoint.doResolve:(Lcom/oracle/truffle/api/source/Source;)V
end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 3 10: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 11 1 node Lcom/oracle/truffle/api/nodes/Node;
3 11 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
5 10 3 source Lcom/oracle/truffle/api/source/Source;
7 9 4 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
MethodParameters:
Name Flags
node
void breakpointResolved(com.oracle.truffle.api.debug.Breakpoint);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isResolved:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
pop
2: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolved:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
putfield com.oracle.truffle.api.debug.DebuggerSession.breakpointsUnresolvedEmpty:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 4 1 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
MethodParameters:
Name Flags
breakpoint
synchronized void disposeBreakpoint(com.oracle.truffle.api.debug.Breakpoint);
descriptor: (Lcom/oracle/truffle/api/debug/Breakpoint;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.breakpoints:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
1: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 3
2: aload 0
ldc "disposed session breakpoint %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 4 1 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
MethodParameters:
Name Flags
breakpoint
public void setAsynchronousStackDepth(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.api.debug.Debugger.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
iload 1
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.setAsynchronousStackDepth:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 depth I
MethodParameters:
Name Flags
depth
public void setContextsListener(com.oracle.truffle.api.debug.DebugContextsListener, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/DebugContextsListener;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.setContextsListener:(Lcom/oracle/truffle/api/debug/DebugContextsListener;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 listener Lcom/oracle/truffle/api/debug/DebugContextsListener;
0 2 2 includeActiveContexts Z
MethodParameters:
Name Flags
listener
includeActiveContexts
public void setThreadsListener(com.oracle.truffle.api.debug.DebugThreadsListener, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/DebugThreadsListener;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.executionLifecycle:Lcom/oracle/truffle/api/debug/DebuggerExecutionLifecycle;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerExecutionLifecycle.setThreadsListener:(Lcom/oracle/truffle/api/debug/DebugThreadsListener;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 listener Lcom/oracle/truffle/api/debug/DebugThreadsListener;
0 2 2 includeInitializedThreads Z
MethodParameters:
Name Flags
listener
includeInitializedThreads
public void setSourcePath(java.lang.Iterable<java.net.URI>);
descriptor: (Ljava/lang/Iterable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
aload 1
invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.setSourcePath:(Ljava/lang/Iterable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 2 1 uris Ljava/lang/Iterable<Ljava/net/URI;>;
Signature: (Ljava/lang/Iterable<Ljava/net/URI;>;)V
MethodParameters:
Name Flags
uris
public com.oracle.truffle.api.source.Source resolveSource(com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/source/Source;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
aload 1
invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/source/Source;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 source Lcom/oracle/truffle/api/source/Source;
MethodParameters:
Name Flags
source
com.oracle.truffle.api.source.SourceSection resolveSection(com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
aload 1
invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 section Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
section
com.oracle.truffle.api.source.SourceSection resolveSection(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.sources:Lcom/oracle/truffle/api/debug/DebugSourcesResolver;
aload 1
invokestatic com.oracle.truffle.api.debug.DebugSourcesResolver.findEncapsulatedSourceSection:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.debug.DebugSourcesResolver.resolve:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/source/SourceSection;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
java.lang.Object notifyCallback(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, java.lang.Object, com.oracle.truffle.api.debug.DebugException, com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=15, locals=16, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
astore 9
start local 9 1: aload 9
ifnull 3
aload 9
getfield com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.enabled:Z
ifne 3
2: aload 6
areturn
3: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isStepNode:()Z
ifeq 6
4: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
ifeq 6
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.isLanguageContextInitialized:()Z
ifne 6
5: aload 6
areturn
6: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 10
start local 10 7: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SuspendedEvent
astore 11
start local 11 8: aload 11
ifnull 12
9: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 11
10: aload 0
ldc "ignored suspended reason: recursive from source:%s context:%s location:%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
aastore
dup
iconst_2
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
11: StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
StackMap stack:
aload 6
areturn
12: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.consumeIsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)Z
ifeq 16
13: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 15
14: aload 0
ldc "ignored suspended reason: duplicate from source:%s context:%s location:%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
aastore
dup
iconst_2
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 6
areturn
16: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.collectDebuggerNodes:(Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
astore 12
start local 12 17: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 22
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
StackMap stack:
18: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 13
start local 13 19: aload 13
aload 2
if_acmpne 21
20: goto 22
21: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator
StackMap stack:
aload 13
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.markAsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
end local 13 22: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
23: aload 0
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
start local 13 24: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
ifeq 34
25: aload 0
dup
astore 14
monitorenter
26: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
ifeq 30
27: invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
28: aload 0
aload 10
aload 13
iconst_1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
29: aload 0
iconst_0
putfield com.oracle.truffle.api.debug.DebuggerSession.suspendNext:Z
30: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerSession
StackMap stack:
aload 14
monitorexit
31: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
32: aload 14
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
aload 13
ifnonnull 36
35: aload 0
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyNewThread:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
36: StackMap locals:
StackMap stack:
aconst_null
astore 14
start local 14 37: aload 8
ifnull 43
38: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 14
39: aload 8
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
start local 15 40: aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
ifeq 42
41: aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
42: StackMap locals: java.util.Map com.oracle.truffle.api.debug.Breakpoint
StackMap stack:
aload 14
aload 15
aload 8
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 15 43: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 12
aload 13
aload 2
aload 3
aload 4
44: aload 5
aload 6
aload 7
aload 14
45: new com.oracle.truffle.api.debug.DebuggerSession$6
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.debug.DebuggerSession$6.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/debug/DebuggerNode;)V
46: invokevirtual com.oracle.truffle.api.debug.DebuggerSession.processBreakpointsAndStep:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
astore 15
start local 15 47: aload 15
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 48 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 48 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 48 2 source Lcom/oracle/truffle/api/debug/DebuggerNode;
0 48 3 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 48 4 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 48 5 inputValuesProvider Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
0 48 6 returnValue Ljava/lang/Object;
0 48 7 exception Lcom/oracle/truffle/api/debug/DebugException;
0 48 8 conditionFailure Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
1 48 9 suspensionDisabled Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
7 48 10 currentThread Ljava/lang/Thread;
8 48 11 event Lcom/oracle/truffle/api/debug/SuspendedEvent;
17 48 12 nodes Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
19 22 13 node Lcom/oracle/truffle/api/debug/DebuggerNode;
24 48 13 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
37 48 14 breakpointFailures Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
40 43 15 fb Lcom/oracle/truffle/api/debug/Breakpoint;
47 48 15 newReturnValue Ljava/lang/Object;
Exception table:
from to target type
26 31 32 any
32 33 32 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
context
source
frame
suspendAnchor
inputValuesProvider
returnValue
exception
conditionFailure
private static void clearFrame(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
astore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 2
if_acmpne 7
2: aload 2
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getDefaultValue:()Ljava/lang/Object;
astore 3
start local 3 3: aload 2
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSlots:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.frame.FrameDescriptor java.lang.Object top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameSlot
astore 4
start local 4 5: aload 1
aload 4
aload 3
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 3 7: StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.frame.FrameDescriptor
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 root Lcom/oracle/truffle/api/nodes/RootNode;
0 8 1 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
1 8 2 descriptor Lcom/oracle/truffle/api/frame/FrameDescriptor;
3 7 3 value Ljava/lang/Object;
5 6 4 slot Lcom/oracle/truffle/api/frame/FrameSlot;
MethodParameters:
Name Flags
root
frame
private void notifyUnwindCallback(com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode);
descriptor: (Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 1: aload 0
aload 3
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 4
start local 4 2: getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 3
aload 4
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 4
aload 4
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isUnwind:()Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 5
aload 4
aload 0
aconst_null
aconst_null
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.step:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.consume:()V
6: aload 2
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
aload 1
invokestatic com.oracle.truffle.api.debug.DebuggerSession.clearFrame:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
7: aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
invokestatic com.oracle.truffle.api.debug.DebuggerSession.findCurrentCaller:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
astore 5
start local 5 8: aload 5
getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.node:Lcom/oracle/truffle/api/nodes/Node;
aload 4
checkcast com.oracle.truffle.api.debug.SteppingStrategy$Unwind
getfield com.oracle.truffle.api.debug.SteppingStrategy$Unwind.unwind:Ljava/lang/ThreadDeath;
invokestatic com.oracle.truffle.api.debug.SuspendedContext.create:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/ThreadDeath;)Lcom/oracle/truffle/api/debug/SuspendedContext;
astore 6
start local 6 9: aload 0
aload 6
getstatic com.oracle.truffle.api.debug.SuspendAnchor.AFTER:Lcom/oracle/truffle/api/debug/SuspendAnchor;
aload 5
getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
pop
10: return
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 11 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 11 1 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 11 2 insertableNode Lcom/oracle/truffle/api/debug/InsertableNode;
1 11 3 currentThread Ljava/lang/Thread;
2 11 4 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
8 11 5 caller Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
9 11 6 context Lcom/oracle/truffle/api/debug/SuspendedContext;
MethodParameters:
Name Flags
frame
insertableNode
static com.oracle.truffle.api.debug.DebuggerSession$Caller findCurrentCaller(com.oracle.truffle.api.debug.DebuggerSession, boolean);
descriptor: (Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new com.oracle.truffle.api.debug.DebuggerSession$7
dup
aload 0
iload 1
invokespecial com.oracle.truffle.api.debug.DebuggerSession$7.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerSession$Caller
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 session Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 includeInternal Z
MethodParameters:
Name Flags
session
includeInternal
private java.lang.Object notifyCallerReturn(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isStepNode:()Z
ifeq 3
1: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.ignoreLanguageContextInitialization:Lcom/oracle/truffle/api/debug/DebuggerSession$StableBoolean;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession$StableBoolean.get:()Z
ifeq 3
aload 3
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.isLanguageContextInitialized:()Z
ifne 3
2: aload 5
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.includeInternal:Z
invokestatic com.oracle.truffle.api.debug.DebuggerSession.findCurrentCaller:(Lcom/oracle/truffle/api/debug/DebuggerSession;Z)Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
astore 6
start local 6 4: aload 6
ifnonnull 6
5: aload 5
areturn
6: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$Caller
StackMap stack:
aload 0
aload 1
aload 6
aload 2
aload 3
aload 4
aload 5
aconst_null
aconst_null
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyAtCaller:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
areturn
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 7 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 7 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 7 2 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
0 7 3 source Lcom/oracle/truffle/api/debug/DebuggerNode;
0 7 4 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 7 5 returnValue Ljava/lang/Object;
4 7 6 caller Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
MethodParameters:
Name Flags
context
s
source
suspendAnchor
returnValue
java.lang.Object notifyAtCaller(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.debug.DebuggerSession$Caller, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor, java.lang.Object, com.oracle.truffle.api.debug.DebugException, com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=15, locals=16, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.threadSuspensions:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
astore 9
start local 9 1: aload 9
ifnull 3
aload 9
getfield com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension.enabled:Z
ifne 3
2: aload 6
areturn
3: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 10
start local 10 4: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SuspendedEvent
astore 11
start local 11 5: aload 11
ifnull 9
6: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 8
7: aload 0
ldc "ignored suspended reason: recursive from source:%s context:%s location:%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
aastore
dup
iconst_2
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
StackMap stack:
aload 6
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.node:Lcom/oracle/truffle/api/nodes/Node;
aload 5
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.collectDebuggerNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
astore 12
start local 12 10: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 15
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
StackMap stack:
11: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 13
start local 13 12: aload 13
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
start local 15 13: aload 15
ifnull 14
aload 0
aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getKind:()Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
ifeq 15
aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getCondition:()Ljava/lang/String;
ifnonnull 15
14: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint
StackMap stack:
aload 6
areturn
end local 15 end local 13 15: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
16: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 19
StackMap locals:
StackMap stack:
17: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 13
start local 13 18: aload 13
aload 0
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.markAsDuplicate:(Lcom/oracle/truffle/api/debug/DebuggerSession;)V
end local 13 19: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
20: aload 12
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 3
astore 13
start local 13 22: aload 13
ifnonnull 26
23: aload 0
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
24: aload 13
ifnonnull 26
25: aload 0
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.notifyNewThread:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
26: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor java.lang.Object com.oracle.truffle.api.debug.DebugException com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent java.util.List com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
aconst_null
astore 14
start local 14 27: aload 8
ifnull 33
28: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 14
29: aload 8
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
start local 15 30: aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
ifeq 32
31: aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
32: StackMap locals: java.util.Map com.oracle.truffle.api.debug.Breakpoint
StackMap stack:
aload 14
aload 15
aload 8
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 15 33: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 12
aload 13
aload 4
aload 2
getfield com.oracle.truffle.api.debug.DebuggerSession$Caller.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
aload 5
aconst_null
aload 6
aload 7
aload 14
34: new com.oracle.truffle.api.debug.DebuggerSession$8
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.debug.DebuggerSession$8.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;)V
35: invokevirtual com.oracle.truffle.api.debug.DebuggerSession.processBreakpointsAndStep:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
astore 15
start local 15 36: aload 15
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 37 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 37 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 37 2 caller Lcom/oracle/truffle/api/debug/DebuggerSession$Caller;
0 37 3 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
0 37 4 source Lcom/oracle/truffle/api/debug/DebuggerNode;
0 37 5 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 37 6 returnValue Ljava/lang/Object;
0 37 7 exception Lcom/oracle/truffle/api/debug/DebugException;
0 37 8 conditionFailure Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
1 37 9 suspensionDisabled Lcom/oracle/truffle/api/debug/DebuggerSession$ThreadSuspension;
4 37 10 currentThread Ljava/lang/Thread;
5 37 11 event Lcom/oracle/truffle/api/debug/SuspendedEvent;
10 37 12 nodes Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
12 15 13 node Lcom/oracle/truffle/api/debug/DebuggerNode;
13 15 15 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
18 19 13 node Lcom/oracle/truffle/api/debug/DebuggerNode;
22 37 13 strategy Lcom/oracle/truffle/api/debug/SteppingStrategy;
27 37 14 breakpointFailures Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
30 33 15 fb Lcom/oracle/truffle/api/debug/Breakpoint;
36 37 15 newReturnValue Ljava/lang/Object;
MethodParameters:
Name Flags
context
caller
s
source
suspendAnchor
returnValue
exception
conditionFailure
private processBreakpointsAndStep(com.oracle.truffle.api.instrumentation.EventContext, java.util.List<com.oracle.truffle.api.debug.DebuggerNode>, com.oracle.truffle.api.debug.SteppingStrategy, com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, , com.oracle.truffle.api.debug.DebugException, java.util.Map<com.oracle.truffle.api.debug.Breakpoint, java.lang.Throwable>, java.util.function.Supplier<com.oracle.truffle.api.debug.SuspendedContext>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map;Ljava/util/function/Supplier;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=19, args_size=12
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: aconst_null
astore 12
start local 12 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 25
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List top java.util.Iterator
StackMap stack:
2: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 13
start local 13 3: aload 13
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 15
start local 15 4: aload 15
ifnull 25
aload 0
aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getKind:()Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.isBreakpointsActive:(Lcom/oracle/truffle/api/debug/Breakpoint$Kind;)Z
ifne 6
5: goto 25
6: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint
StackMap stack:
iconst_1
istore 16
start local 16 7: aconst_null
astore 17
start local 17 8: aload 15
aload 1
aload 4
aload 13
aload 5
aload 9
invokevirtual com.oracle.truffle.api.debug.Breakpoint.notifyIndirectHit:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/DebugException;)Z
istore 16
9: goto 12
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint int com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
StackMap stack: com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
10: astore 18
start local 18 11: aload 18
astore 17
end local 18 12: StackMap locals:
StackMap stack:
iload 16
ifeq 18
13: aload 12
ifnonnull 15
14: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 12
15: StackMap locals:
StackMap stack:
aload 12
aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
ifeq 16
aload 15
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
goto 17
StackMap locals:
StackMap stack: java.util.List
16: aload 15
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List com.oracle.truffle.api.debug.DebuggerNode java.util.Iterator com.oracle.truffle.api.debug.Breakpoint int com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
StackMap stack: java.util.List com.oracle.truffle.api.debug.Breakpoint
17: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: StackMap locals:
StackMap stack:
aload 17
ifnull 25
19: aload 10
ifnonnull 21
20: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 10
21: StackMap locals:
StackMap stack:
aload 17
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getBreakpoint:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 18
start local 18 22: aload 18
invokevirtual com.oracle.truffle.api.debug.Breakpoint.isGlobal:()Z
ifeq 24
23: aload 18
invokevirtual com.oracle.truffle.api.debug.Breakpoint.getROWrapper:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 18
24: StackMap locals: com.oracle.truffle.api.debug.Breakpoint
StackMap stack:
aload 10
aload 18
aload 17
invokevirtual com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure.getConditionFailure:()Ljava/lang/Throwable;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 18 end local 17 end local 16 end local 15 end local 13 25: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
26: aload 12
ifnonnull 28
27: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 12
28: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.EventContext java.util.List com.oracle.truffle.api.debug.SteppingStrategy com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.Map java.util.function.Supplier java.util.List
StackMap stack:
aload 10
ifnonnull 30
29: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
astore 10
30: StackMap locals:
StackMap stack:
aload 3
aload 0
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 6
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.step:(Lcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
istore 13
start local 13 31: aload 12
invokeinterface java.util.List.isEmpty:()Z
ifeq 32
iconst_0
goto 33
StackMap locals: int
StackMap stack:
32: iconst_1
StackMap locals:
StackMap stack: int
33: istore 14
start local 14 34: aload 8
astore 15
start local 15 35: iload 13
ifne 36
iload 14
ifeq 41
36: StackMap locals: int java.lang.Object
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.consume:()V
37: aload 0
aload 11
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.SuspendedContext
aload 6
aload 5
aload 4
aload 7
aload 8
aload 9
aload 12
38: aload 10
39: invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
astore 15
40: goto 43
41: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 43
42: aload 0
ldc "ignored suspended reason: strategy(%s) from source:%s context:%s location:%s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
aastore
dup
iconst_3
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getSuspendAnchors:()Ljava/util/Set;
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
43: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
ifeq 45
44: aload 0
aload 4
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.performKill:(Lcom/oracle/truffle/api/nodes/Node;)V
45: StackMap locals:
StackMap stack:
aload 15
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 46 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 46 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 46 2 nodes Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
0 46 3 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
0 46 4 source Lcom/oracle/truffle/api/debug/DebuggerNode;
0 46 5 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 46 6 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 46 7 inputValuesProvider Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
0 46 8 returnValue Ljava/lang/Object;
0 46 9 exception Lcom/oracle/truffle/api/debug/DebugException;
0 46 10 breakpointFailures Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
0 46 11 contextSupplier Ljava/util/function/Supplier<Lcom/oracle/truffle/api/debug/SuspendedContext;>;
1 46 12 breaks Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
3 25 13 node Lcom/oracle/truffle/api/debug/DebuggerNode;
4 25 15 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
7 25 16 hit Z
8 25 17 failure Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
11 12 18 e Lcom/oracle/truffle/api/debug/Breakpoint$BreakpointConditionFailure;
22 25 18 fb Lcom/oracle/truffle/api/debug/Breakpoint;
31 46 13 hitStepping Z
34 46 14 hitBreakpoint Z
35 46 15 newReturnValue Ljava/lang/Object;
Exception table:
from to target type
8 9 10 Class com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure
Signature: (Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;Lcom/oracle/truffle/api/debug/SteppingStrategy;Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;Ljava/util/function/Supplier<Lcom/oracle/truffle/api/debug/SuspendedContext;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
context
nodes
s
source
frame
suspendAnchor
inputValuesProvider
returnValue
exception
breakpointFailures
contextSupplier
private java.lang.Object doSuspend(com.oracle.truffle.api.debug.SuspendedContext, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
aconst_null
aconst_null
aconst_null
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.doSuspend:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 1 1 context Lcom/oracle/truffle/api/debug/SuspendedContext;
0 1 2 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 1 3 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 1 4 insertableNode Lcom/oracle/truffle/api/debug/InsertableNode;
MethodParameters:
Name Flags
context
suspendAnchor
frame
insertableNode
private doSuspend(com.oracle.truffle.api.debug.SuspendedContext, com.oracle.truffle.api.debug.SuspendAnchor, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.debug.InsertableNode, com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider, , com.oracle.truffle.api.debug.DebugException, java.util.List<com.oracle.truffle.api.debug.Breakpoint>, java.util.Map<com.oracle.truffle.api.debug.Breakpoint, java.lang.Throwable>);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=15, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 10
start local 10 2: new com.oracle.truffle.api.debug.SuspendedEvent
dup
aload 0
aload 10
aload 1
aload 3
aload 2
aload 4
aload 5
aload 6
aload 7
aload 8
aload 9
invokespecial com.oracle.truffle.api.debug.SuspendedEvent.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List;Ljava/util/Map;)V
astore 11
start local 11 3: aload 7
ifnull 5
4: aload 7
aload 11
invokevirtual com.oracle.truffle.api.debug.DebugException.setSuspendedEvent:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
5: StackMap locals: java.lang.Thread com.oracle.truffle.api.debug.SuspendedEvent
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
aload 11
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.callback:Lcom/oracle/truffle/api/debug/SuspendedCallback;
aload 11
invokeinterface com.oracle.truffle.api.debug.SuspendedCallback.onSuspend:(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
7: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 13
9: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 11
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getReturnObject:()Ljava/lang/Object;
astore 12
start local 12 11: aload 11
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.clearLeakingReferences:()V
12: aload 13
athrow
end local 12 13: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.currentSuspendedEventMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 11
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getReturnObject:()Ljava/lang/Object;
astore 12
start local 12 15: aload 11
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.clearLeakingReferences:()V
16: goto 19
end local 12 end local 11 StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.SuspendedContext com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.debug.InsertableNode com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider java.lang.Object com.oracle.truffle.api.debug.DebugException java.util.List java.util.Map java.lang.Thread
StackMap stack: java.lang.Throwable
17: astore 13
start local 13 18: aload 13
athrow
end local 13 start local 11 start local 12 19: StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.closed:Z
ifeq 21
20: aload 12
areturn
21: StackMap locals:
StackMap stack:
aload 11
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getNextStrategy:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 13
start local 13 22: aload 13
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
ifne 26
23: aload 0
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 14
start local 14 24: aload 14
ifnull 26
aload 14
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isConsumed:()Z
ifne 26
25: aload 14
astore 13
end local 14 26: StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
aload 13
aload 1
aload 2
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.initialize:(Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;)V
27: getstatic com.oracle.truffle.api.debug.Debugger.TRACE:Z
ifeq 29
28: aload 0
ldc "end suspend with strategy %s at %s location %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 13
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals:
StackMap stack:
aload 0
aload 10
aload 13
iconst_1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
30: aload 13
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isKill:()Z
ifeq 33
31: aload 0
aload 1
invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.performKill:(Lcom/oracle/truffle/api/nodes/Node;)V
32: goto 37
StackMap locals:
StackMap stack:
33: aload 13
invokevirtual com.oracle.truffle.api.debug.SteppingStrategy.isUnwind:()Z
ifeq 37
34: aload 1
aconst_null
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.syntaxElementsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokeinterface com.oracle.truffle.api.debug.SuspendedContext.createUnwind:(Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Ljava/lang/ThreadDeath;
astore 14
start local 14 35: aload 13
checkcast com.oracle.truffle.api.debug.SteppingStrategy$Unwind
aload 14
putfield com.oracle.truffle.api.debug.SteppingStrategy$Unwind.unwind:Ljava/lang/ThreadDeath;
36: aload 14
athrow
end local 14 37: StackMap locals:
StackMap stack:
aload 12
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 38 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 38 1 context Lcom/oracle/truffle/api/debug/SuspendedContext;
0 38 2 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
0 38 3 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 38 4 insertableNode Lcom/oracle/truffle/api/debug/InsertableNode;
0 38 5 inputValuesProvider Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;
0 38 6 returnValue Ljava/lang/Object;
0 38 7 exception Lcom/oracle/truffle/api/debug/DebugException;
0 38 8 breaks Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;
0 38 9 conditionFailures Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;
2 38 10 currentThread Ljava/lang/Thread;
3 17 11 suspendedEvent Lcom/oracle/truffle/api/debug/SuspendedEvent;
19 38 11 suspendedEvent Lcom/oracle/truffle/api/debug/SuspendedEvent;
11 13 12 newReturnValue Ljava/lang/Object;
15 17 12 newReturnValue Ljava/lang/Object;
19 38 12 newReturnValue Ljava/lang/Object;
18 19 13 t Ljava/lang/Throwable;
22 38 13 strategy Lcom/oracle/truffle/api/debug/SteppingStrategy;
24 26 14 currentStrategy Lcom/oracle/truffle/api/debug/SteppingStrategy;
35 37 14 unwind Ljava/lang/ThreadDeath;
Exception table:
from to target type
6 8 8 any
2 16 17 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/debug/SuspendedContext;Lcom/oracle/truffle/api/debug/SuspendAnchor;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/debug/InsertableNode;Lcom/oracle/truffle/api/debug/DebuggerNode$InputValuesProvider;Ljava/lang/Object;Lcom/oracle/truffle/api/debug/DebugException;Ljava/util/List<Lcom/oracle/truffle/api/debug/Breakpoint;>;Ljava/util/Map<Lcom/oracle/truffle/api/debug/Breakpoint;Ljava/lang/Throwable;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
context
suspendAnchor
frame
insertableNode
inputValuesProvider
returnValue
exception
breaks
conditionFailures
private void performKill(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
ifeq 2
1: new com.oracle.truffle.api.debug.KillException
dup
aload 1
invokespecial com.oracle.truffle.api.debug.KillException.<init>:(Lcom/oracle/truffle/api/nodes/Node;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger: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.getEnteredContext:()Lcom/oracle/truffle/api/TruffleContext;
astore 2
start local 2 3: aload 2
aload 1
ldc "Execution cancelled by a debugging session."
invokevirtual com.oracle.truffle.api.TruffleContext.closeCancelled:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)V
end local 2 4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 5 1 location Lcom/oracle/truffle/api/nodes/Node;
3 4 2 truffleContext Lcom/oracle/truffle/api/TruffleContext;
MethodParameters:
Name Flags
location
private java.util.List<com.oracle.truffle.api.debug.DebuggerNode> collectDebuggerNodes(com.oracle.truffle.api.debug.DebuggerNode, com.oracle.truffle.api.debug.SuspendAnchor);
descriptor: (Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 3
start local 3 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 2: aload 4
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 3
aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.lookupExecutionEventNodes:(Ljava/util/Collection;)Ljava/util/Iterator;
astore 5
start local 5 4: getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
aload 2
invokevirtual com.oracle.truffle.api.debug.SuspendAnchor.equals:(Ljava/lang/Object;)Z
ifeq 22
5: iconst_0
istore 6
start local 6 6: goto 15
7: StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.debug.DebuggerNode com.oracle.truffle.api.debug.SuspendAnchor com.oracle.truffle.api.instrumentation.EventContext java.util.List java.util.Iterator int
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 7
start local 7 8: iload 6
ifeq 12
9: aload 7
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
ifeq 15
10: aload 4
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: goto 15
12: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode
StackMap stack:
aload 7
aload 1
if_acmpne 13
iconst_1
goto 14
StackMap locals:
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 6
end local 7 15: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 6 16: goto 23
17: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 6
start local 6 18: aload 6
aload 1
if_acmpne 20
19: goto 23
20: StackMap locals: com.oracle.truffle.api.debug.DebuggerNode
StackMap stack:
aload 6
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
ifeq 22
21: aload 4
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 22: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
23: StackMap locals:
StackMap stack:
aload 4
areturn
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 24 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 24 1 source Lcom/oracle/truffle/api/debug/DebuggerNode;
0 24 2 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
1 24 3 context Lcom/oracle/truffle/api/instrumentation/EventContext;
2 24 4 nodes Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
4 24 5 nodesIterator Ljava/util/Iterator<Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;>;
6 16 6 after Z
8 15 7 node Lcom/oracle/truffle/api/debug/DebuggerNode;
18 22 6 node Lcom/oracle/truffle/api/debug/DebuggerNode;
Signature: (Lcom/oracle/truffle/api/debug/DebuggerNode;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
MethodParameters:
Name Flags
source
suspendAnchor
private java.util.List<com.oracle.truffle.api.debug.DebuggerNode> collectDebuggerNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.debug.SuspendAnchor);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.allBindings:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.debug.SuspendAnchor java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 4
start local 4 3: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.debugger:Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.api.debug.Debugger.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 1
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.lookupExecutionEventNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
checkcast com.oracle.truffle.api.debug.DebuggerNode
astore 6
start local 6 4: aload 6
ifnull 6
aload 6
aload 2
invokevirtual com.oracle.truffle.api.debug.DebuggerNode.isActiveAt:(Lcom/oracle/truffle/api/debug/SuspendAnchor;)Z
ifeq 6
5: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 8 1 iNode Lcom/oracle/truffle/api/nodes/Node;
0 8 2 suspendAnchor Lcom/oracle/truffle/api/debug/SuspendAnchor;
1 8 3 nodes Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
3 6 4 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
4 6 6 node Lcom/oracle/truffle/api/debug/DebuggerNode;
Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/debug/SuspendAnchor;)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebuggerNode;>;
MethodParameters:
Name Flags
iNode
suspendAnchor
private synchronized com.oracle.truffle.api.debug.SteppingStrategy notifyNewThread(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.getSteppingStrategy:(Ljava/lang/Thread;)Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 2
start local 2 1: aload 2
ifnonnull 7
2: aload 0
getfield com.oracle.truffle.api.debug.DebuggerSession.suspendAll:Z
ifeq 5
3: invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createAlwaysHalt:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 2
4: goto 6
5: StackMap locals: com.oracle.truffle.api.debug.SteppingStrategy
StackMap stack:
invokestatic com.oracle.truffle.api.debug.SteppingStrategy.createContinue:()Lcom/oracle/truffle/api/debug/SteppingStrategy;
astore 2
6: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_1
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.setSteppingStrategy:(Ljava/lang/Thread;Lcom/oracle/truffle/api/debug/SteppingStrategy;Z)V
7: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.DebuggerSession.$assertionsDisabled:Z
ifne 8
aload 2
ifnonnull 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/debug/DebuggerSession;
0 9 1 currentThread Ljava/lang/Thread;
1 9 2 s Lcom/oracle/truffle/api/debug/SteppingStrategy;
MethodParameters:
Name Flags
currentThread
static java.lang.Object evalInContext(com.oracle.truffle.api.debug.SuspendedEvent, java.lang.String, com.oracle.truffle.api.frame.FrameInstance);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Ljava/lang/String;Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 4
1: aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getContext:()Lcom/oracle/truffle/api/debug/SuspendedContext;
invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 2: aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getMaterializedFrame:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
astore 4
start local 4 3: goto 6
end local 4 end local 3 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 5: aload 2
getstatic com.oracle.truffle.api.frame.FrameInstance$FrameAccess.MATERIALIZE:Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getFrame:(Lcom/oracle/truffle/api/frame/FrameInstance$FrameAccess;)Lcom/oracle/truffle/api/frame/Frame;
invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
astore 4
start local 4 6: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame
StackMap stack:
getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
7: aload 0
aload 3
aload 4
aload 1
invokestatic com.oracle.truffle.api.debug.DebuggerSession.evalInContext:(Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/String;)Ljava/lang/Object;
astore 9
8: getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.remove:()V
9: aload 9
areturn
10: StackMap locals:
StackMap stack: com.oracle.truffle.api.debug.KillException
pop
11: new com.oracle.truffle.api.debug.DebugException
dup
aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
ldc "Evaluation was killed."
aconst_null
iconst_1
aconst_null
invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(Lcom/oracle/truffle/api/debug/DebuggerSession;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;ZLcom/oracle/truffle/api/debug/DebugException$CatchLocation;)V
athrow
12: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 5
start local 5 13: aload 5
athrow
end local 5 14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 15: aconst_null
astore 6
start local 6 16: aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 7
start local 7 17: aload 7
ifnull 19
18: aload 7
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 6
19: StackMap locals: java.lang.Throwable com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.api.nodes.RootNode
StackMap stack:
new com.oracle.truffle.api.debug.DebugException
dup
aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()Lcom/oracle/truffle/api/debug/DebuggerSession;
aload 5
aload 6
aconst_null
iconst_1
aconst_null
invokespecial com.oracle.truffle.api.debug.DebugException.<init>:(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
athrow
end local 7 end local 6 end local 5 20: StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent java.lang.String com.oracle.truffle.api.frame.FrameInstance com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame
StackMap stack: java.lang.Throwable
astore 8
21: getstatic com.oracle.truffle.api.debug.DebuggerSession.inEvalInContext:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.remove:()V
22: aload 8
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 ev Lcom/oracle/truffle/api/debug/SuspendedEvent;
0 23 1 code Ljava/lang/String;
0 23 2 frameInstance Lcom/oracle/truffle/api/frame/FrameInstance;
2 4 3 node Lcom/oracle/truffle/api/nodes/Node;
5 23 3 node Lcom/oracle/truffle/api/nodes/Node;
3 4 4 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
6 23 4 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
13 14 5 ex Ljava/lang/IllegalStateException;
15 20 5 ex Ljava/lang/Throwable;
16 20 6 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
17 20 7 root Lcom/oracle/truffle/api/nodes/RootNode;
Exception table:
from to target type
6 8 10 Class com.oracle.truffle.api.debug.KillException
6 8 12 Class java.lang.IllegalStateException
6 8 14 Class java.lang.Throwable
6 8 20 any
10 20 20 any
Exceptions:
throws com.oracle.truffle.api.debug.DebugException
MethodParameters:
Name Flags
ev
code
frameInstance
private static java.lang.Object evalInContext(com.oracle.truffle.api.debug.SuspendedEvent, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Cannot evaluate in context using a node that is not yet adopted using a RootNode."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 5
start local 5 4: aload 5
ifnonnull 6
5: new java.lang.IllegalArgumentException
dup
ldc "Cannot evaluate in context using a without an associated TruffleLanguage."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
aload 3
ldc "eval in context"
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
iconst_1
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
astore 6
start local 6 7: aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSession:()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;
aload 6
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.parseInline:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
astore 7
start local 7 8: aload 7
ifnull 11
9: aload 0
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getInsertableNode:()Lcom/oracle/truffle/api/debug/InsertableNode;
aload 7
invokeinterface com.oracle.truffle.api.debug.InsertableNode.setParentOf:(Lcom/oracle/truffle/api/nodes/Node;)V
10: aload 7
aload 2
invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
areturn
11: StackMap locals: com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.ExecutableNode
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.isInteractive:()Z
ifne 13
12: new java.lang.IllegalStateException
dup
ldc "Can not evaluate in a non-interactive language."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.debug.Debugger.ACCESSOR:Lcom/oracle/truffle/api/debug/Debugger$AccessorDebug;
aload 6
aload 1
aload 2
invokevirtual com.oracle.truffle.api.debug.Debugger$AccessorDebug.evalInContext:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Ljava/lang/Object;
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 14 0 ev Lcom/oracle/truffle/api/debug/SuspendedEvent;
0 14 1 node Lcom/oracle/truffle/api/nodes/Node;
0 14 2 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
0 14 3 code Ljava/lang/String;
1 14 4 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
4 14 5 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
7 14 6 source Lcom/oracle/truffle/api/source/Source;
8 14 7 fragment Lcom/oracle/truffle/api/nodes/ExecutableNode;
MethodParameters:
Name Flags
ev
node
frame
code
static int[] $SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.truffle.api.debug.Breakpoint$Kind.values:()[Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.EXCEPTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.HALT_INSTRUCTION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.truffle.api.debug.Breakpoint$Kind.SOURCE_LOCATION:Lcom/oracle/truffle/api/debug/Breakpoint$Kind;
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Kind.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic com.oracle.truffle.api.debug.DebuggerSession.$SWITCH_TABLE$com$oracle$truffle$api$debug$Breakpoint$Kind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "DebuggerSession.java"
NestMembers:
com.oracle.truffle.api.debug.DebuggerSession$1 com.oracle.truffle.api.debug.DebuggerSession$2 com.oracle.truffle.api.debug.DebuggerSession$3 com.oracle.truffle.api.debug.DebuggerSession$4 com.oracle.truffle.api.debug.DebuggerSession$5 com.oracle.truffle.api.debug.DebuggerSession$6 com.oracle.truffle.api.debug.DebuggerSession$7 com.oracle.truffle.api.debug.DebuggerSession$8 com.oracle.truffle.api.debug.DebuggerSession$Caller com.oracle.truffle.api.debug.DebuggerSession$RootSteppingDepthNode com.oracle.truffle.api.debug.DebuggerSession$StableBoolean com.oracle.truffle.api.debug.DebuggerSession$SteppingNode com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final BreakpointConditionFailure = com.oracle.truffle.api.debug.Breakpoint$BreakpointConditionFailure of com.oracle.truffle.api.debug.Breakpoint
public final Kind = com.oracle.truffle.api.debug.Breakpoint$Kind of com.oracle.truffle.api.debug.Breakpoint
public final CatchLocation = com.oracle.truffle.api.debug.DebugException$CatchLocation of com.oracle.truffle.api.debug.DebugException
final AccessorDebug = com.oracle.truffle.api.debug.Debugger$AccessorDebug of com.oracle.truffle.api.debug.Debugger
abstract InputValuesProvider = com.oracle.truffle.api.debug.DebuggerNode$InputValuesProvider of com.oracle.truffle.api.debug.DebuggerNode
com.oracle.truffle.api.debug.DebuggerSession$1
com.oracle.truffle.api.debug.DebuggerSession$2
com.oracle.truffle.api.debug.DebuggerSession$3
com.oracle.truffle.api.debug.DebuggerSession$4
com.oracle.truffle.api.debug.DebuggerSession$5
com.oracle.truffle.api.debug.DebuggerSession$6
com.oracle.truffle.api.debug.DebuggerSession$7
com.oracle.truffle.api.debug.DebuggerSession$8
final Caller = com.oracle.truffle.api.debug.DebuggerSession$Caller of com.oracle.truffle.api.debug.DebuggerSession
private final RootSteppingDepthNode = com.oracle.truffle.api.debug.DebuggerSession$RootSteppingDepthNode of com.oracle.truffle.api.debug.DebuggerSession
final StableBoolean = com.oracle.truffle.api.debug.DebuggerSession$StableBoolean of com.oracle.truffle.api.debug.DebuggerSession
private SteppingNode = com.oracle.truffle.api.debug.DebuggerSession$SteppingNode of com.oracle.truffle.api.debug.DebuggerSession
final ThreadSuspension = com.oracle.truffle.api.debug.DebuggerSession$ThreadSuspension of com.oracle.truffle.api.debug.DebuggerSession
final Unwind = com.oracle.truffle.api.debug.SteppingStrategy$Unwind of com.oracle.truffle.api.debug.SteppingStrategy
public final FrameAccess = com.oracle.truffle.api.frame.FrameInstance$FrameAccess of com.oracle.truffle.api.frame.FrameInstance
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public abstract SourcePredicate = com.oracle.truffle.api.instrumentation.SourceSectionFilter$SourcePredicate of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
public KeySetView = java.util.concurrent.ConcurrentHashMap$KeySetView of java.util.concurrent.ConcurrentHashMap