final class com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder
super_class: java.lang.Object
{
private static final java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> SUSPENDABLE_TAGS_SET;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
private static final java.lang.Class<?>[] SUSPENDABLE_TAGS;
descriptor: [Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: [Ljava/lang/Class<*>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
putstatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.SUSPENDABLE_TAGS_SET:Ljava/util/Set;
1: getstatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.SUSPENDABLE_TAGS_SET:Ljava/util/Set;
getstatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.SUSPENDABLE_TAGS_SET:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
anewarray java.lang.Class
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
putstatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.SUSPENDABLE_TAGS:[Ljava/lang/Class;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder;
static java.lang.Iterable<com.oracle.truffle.api.source.SourceSection> findSuspendableLocations(com.oracle.truffle.api.source.SourceSection, boolean, com.oracle.truffle.api.debug.DebuggerSession, com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;ZLcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)Ljava/lang/Iterable;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 4
start local 4 1: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
istore 5
start local 5 2: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
istore 6
start local 6 3: aload 4
iload 5
iload 6
iload 1
aload 3
invokestatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.collectSuspendableLocations:(Lcom/oracle/truffle/api/source/Source;IIZLcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
astore 7
start local 7 4: aload 7
invokevirtual com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector.getSections:()Ljava/util/List;
astore 8
start local 8 5: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifeq 24
6: new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
astore 9
start local 9 7: aload 4
invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
ldc 2147483647
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.ignoreCount:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.lineIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.columnIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
8: new com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$1
dup
aload 9
invokespecial com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$1.<init>:(Ljava/util/concurrent/atomic/AtomicReference;)V
9: invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.resolveListener:(Lcom/oracle/truffle/api/debug/Breakpoint$ResolveListener;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
10: invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
11: astore 10
start local 10 12: aload 2
aload 10
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
pop
13: goto 17
StackMap locals: com.oracle.truffle.api.source.SourceSection int com.oracle.truffle.api.debug.DebuggerSession com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.source.Source int int com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector java.util.List java.util.concurrent.atomic.AtomicReference com.oracle.truffle.api.debug.Breakpoint
StackMap stack: java.lang.Throwable
14: astore 11
15: aload 10
invokevirtual com.oracle.truffle.api.debug.Breakpoint.dispose:()V
16: aload 11
athrow
17: StackMap locals:
StackMap stack:
aload 10
invokevirtual com.oracle.truffle.api.debug.Breakpoint.dispose:()V
18: aload 9
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.SourceSection
astore 11
start local 11 19: aload 11
ifnull 24
20: aload 11
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
istore 5
21: aload 11
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
istore 6
22: aload 4
iload 5
iload 6
iload 1
aload 3
invokestatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.collectSuspendableLocations:(Lcom/oracle/truffle/api/source/Source;IIZLcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
astore 7
23: aload 7
invokevirtual com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector.getSections:()Ljava/util/List;
astore 8
end local 11 end local 10 end local 9 24: StackMap locals:
StackMap stack:
aload 8
areturn
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 25 0 range Lcom/oracle/truffle/api/source/SourceSection;
0 25 1 restrictToSingleFunction Z
0 25 2 session Lcom/oracle/truffle/api/debug/DebuggerSession;
0 25 3 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
1 25 4 source Lcom/oracle/truffle/api/source/Source;
2 25 5 startIndex I
3 25 6 endIndex I
4 25 7 sectionsCollector Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
5 25 8 sections Ljava/util/List<Lcom/oracle/truffle/api/source/SourceSection;>;
7 24 9 nearestSection Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/source/SourceSection;>;
12 24 10 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
19 24 11 suspendableSection Lcom/oracle/truffle/api/source/SourceSection;
Exception table:
from to target type
12 14 14 any
Signature: (Lcom/oracle/truffle/api/source/SourceSection;ZLcom/oracle/truffle/api/debug/DebuggerSession;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/source/SourceSection;>;
MethodParameters:
Name Flags
range
restrictToSingleFunction
session
env
private static com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector collectSuspendableLocations(com.oracle.truffle.api.source.Source, int, int, boolean, com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/source/Source;IIZLcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray com.oracle.truffle.api.source.Source
dup
iconst_0
aload 0
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.sourceIs:([Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray com.oracle.truffle.api.instrumentation.SourceSectionFilter$IndexRange
dup
iconst_0
iload 1
iload 2
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter$IndexRange.between:(II)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$IndexRange;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.indexIn:([Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$IndexRange;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
getstatic com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder.SUSPENDABLE_TAGS:[Ljava/lang/Class;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 5
start local 5 1: iload 3
ifeq 4
2: new com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$FunctionSectionsCollector
dup
iload 1
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokespecial com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$FunctionSectionsCollector.<init>:(ILcom/oracle/truffle/api/instrumentation/Instrumenter;)V
astore 6
start local 6 3: goto 5
end local 6 4: StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter
StackMap stack:
new com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector
dup
iload 1
invokespecial com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector.<init>:(I)V
astore 6
start local 6 5: StackMap locals: com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.visitLoadedSourceSections:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;)V
6: aload 6
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 source Lcom/oracle/truffle/api/source/Source;
0 7 1 startIndex I
0 7 2 endIndex I
0 7 3 restrictToSingleFunction Z
0 7 4 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
1 7 5 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
3 4 6 sectionsCollector Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
5 7 6 sectionsCollector Lcom/oracle/truffle/tools/chromeinspector/SuspendableLocationFinder$SectionsCollector;
MethodParameters:
Name Flags
source
startIndex
endIndex
restrictToSingleFunction
env
}
SourceFile: "SuspendableLocationFinder.java"
NestMembers:
com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$1 com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$FunctionSectionsCollector com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector
InnerClasses:
public final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
public abstract ResolveListener = com.oracle.truffle.api.debug.Breakpoint$ResolveListener of com.oracle.truffle.api.debug.Breakpoint
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final IndexRange = com.oracle.truffle.api.instrumentation.SourceSectionFilter$IndexRange of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$1
private final FunctionSectionsCollector = com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$FunctionSectionsCollector of com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder
private SectionsCollector = com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder$SectionsCollector of com.oracle.truffle.tools.chromeinspector.SuspendableLocationFinder