abstract class java.lang.StackStreamFactory$AbstractStackWalker<R, T>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: java.lang.StackStreamFactory$AbstractStackWalker
super_class: java.lang.Object
{
protected final java.lang.StackWalker walker;
descriptor: Ljava/lang/StackWalker;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int maxDepth;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final long mode;
descriptor: J
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected int depth;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected java.lang.StackStreamFactory$FrameBuffer<? extends T> frameBuffer;
descriptor: Ljava/lang/StackStreamFactory$FrameBuffer;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/lang/StackStreamFactory$FrameBuffer<+TT;>;
protected long anchor;
descriptor: J
flags: (0x0004) ACC_PROTECTED
private static volatile int[] $SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
protected void <init>(java.lang.StackWalker, int);
descriptor: (Ljava/lang/StackWalker;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
ldc 2147483647
invokespecial java.lang.StackStreamFactory$AbstractStackWalker.<init>:(Ljava/lang/StackWalker;II)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 2 1 walker Ljava/lang/StackWalker;
0 2 2 mode I
MethodParameters:
Name Flags
walker
mode
protected void <init>(java.lang.StackWalker, int, int);
descriptor: (Ljava/lang/StackWalker;II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, 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
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
2: aload 0
aload 0
aload 1
iload 2
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.toStackWalkMode:(Ljava/lang/StackWalker;I)I
i2l
putfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
3: aload 0
aload 1
putfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
4: aload 0
iload 3
putfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
5: aload 0
iconst_0
putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 7 1 walker Ljava/lang/StackWalker;
0 7 2 mode I
0 7 3 maxDepth I
MethodParameters:
Name Flags
walker
mode
maxDepth
private int toStackWalkMode(java.lang.StackWalker, int);
descriptor: (Ljava/lang/StackWalker;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
istore 3
start local 3 1: aload 1
getstatic java.lang.StackWalker$Option.SHOW_HIDDEN_FRAMES:Ljava/lang/StackWalker$Option;
invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
ifeq 4
2: iload 2
iconst_2
iand
iconst_2
if_icmpeq 4
3: iload 3
bipush 32
ior
istore 3
4: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.lang.StackWalker.hasLocalsOperandsOption:()Z
ifeq 6
5: iload 3
sipush 256
ior
istore 3
6: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 7 1 walker Ljava/lang/StackWalker;
0 7 2 mode I
1 7 3 newMode I
MethodParameters:
Name Flags
walker
mode
protected abstract R consumeFrames();
descriptor: ()Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()TR;
protected abstract void initFrameBuffer();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract int batchSize(int);
descriptor: (I)I
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
lastBatchFrameCount
protected int getNextBatchSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
ifne 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.curBatchFrameCount:()I
StackMap locals:
StackMap stack: int
2: istore 1
start local 1 3: aload 0
iload 1
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.batchSize:(I)I
istore 2
start local 2 4: getstatic java.lang.StackStreamFactory.isDebug:Z
ifeq 8
5: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "last batch size = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: ldc " next batch size = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: StackMap locals: int int
StackMap stack:
iload 2
bipush 8
if_icmplt 9
iload 2
goto 10
StackMap locals:
StackMap stack:
9: bipush 8
StackMap locals:
StackMap stack: int
10: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
3 11 1 lastBatchSize I
4 11 2 nextBatchSize I
final void checkState(java.lang.StackStreamFactory$WalkerState);
descriptor: (Ljava/lang/StackStreamFactory$WalkerState;)V
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 4
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Invalid thread walking this stack stream: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
invokestatic java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:()[I
aload 1
invokevirtual java.lang.StackStreamFactory$WalkerState.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 5
2: 7
3: 9
default: 11
}
5: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
lconst_0
lcmp
ifeq 11
6: new java.lang.IllegalStateException
dup
ldc "This stack stream is being reused."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
lconst_0
lcmp
ifeq 8
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
ldc -1
lcmp
ifne 11
8: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "This stack stream is not valid for walking."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
ldc -1
lcmp
ifeq 11
10: new java.lang.IllegalStateException
dup
ldc "This stack stream is not closed."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 12 1 state Ljava/lang/StackStreamFactory$WalkerState;
MethodParameters:
Name Flags
state
private void close();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc -1
putfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
final R walk();
descriptor: ()Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getstatic java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.checkState:(Ljava/lang/StackStreamFactory$WalkerState;)V
1: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.beginStackWalk:()Ljava/lang/Object;
astore 2
2: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.close:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.close:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
Exception table:
from to target type
1 2 4 any
Signature: ()TR;
private boolean skipReflectionFrames();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
getstatic java.lang.StackWalker$Option.SHOW_REFLECT_FRAMES:Ljava/lang/StackWalker$Option;
invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
ifne 3
1: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
getstatic java.lang.StackWalker$Option.SHOW_HIDDEN_FRAMES:Ljava/lang/StackWalker$Option;
invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
ifne 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
final java.lang.Class<?> peekFrame();
descriptor: ()Ljava/lang/Class;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=2, args_size=1
start local 0 0: goto 12
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.isEmpty:()Z
ifeq 4
2: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.getNextBatch:()I
pop
3: goto 12
4: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.get:()Ljava/lang/Class;
astore 1
start local 1 5: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.skipReflectionFrames:()Z
ifeq 11
aload 1
invokestatic java.lang.StackStreamFactory.isReflectionFrame:(Ljava/lang/Class;)Z
ifeq 11
6: getstatic java.lang.StackStreamFactory.isDebug:Z
ifeq 8
7: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " skip: frame "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.getIndex:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.next:()Ljava/lang/Class;
pop
9: aload 0
dup
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
iconst_1
iadd
putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
10: goto 12
11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 12: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.isActive:()Z
ifeq 13
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
if_icmplt 1
13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
5 12 1 c Ljava/lang/Class<*>;
Signature: ()Ljava/lang/Class<*>;
private java.lang.Object doStackWalk(long, int, int, int, int);
descriptor: (JIIII)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: aload 0
getstatic java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.checkState:(Ljava/lang/StackStreamFactory$WalkerState;)V
1: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
iload 3
invokevirtual java.lang.StackStreamFactory$FrameBuffer.check:(I)V
2: getstatic java.lang.StackStreamFactory.isDebug:Z
ifeq 6
3: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "doStackWalk: skip %d start %d end %d%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
4: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
5: invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
6: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
7: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
iload 5
iload 6
invokevirtual java.lang.StackStreamFactory$FrameBuffer.setBatch:(III)V
8: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.consumeFrames:()Ljava/lang/Object;
areturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 9 1 anchor J
0 9 3 skipFrames I
0 9 4 batchSize I
0 9 5 bufStartIndex I
0 9 6 bufEndIndex I
MethodParameters:
Name Flags
anchor
skipFrames
batchSize
bufStartIndex
bufEndIndex
private int getNextBatch();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
isub
aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.getNextBatchSize:()I
invokestatic java.lang.Math.min:(II)I
istore 1
start local 1 1: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.isActive:()Z
ifeq 2
iload 1
ifgt 6
2: StackMap locals: int
StackMap stack:
getstatic java.lang.StackStreamFactory.isDebug:Z
ifeq 4
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " more stack walk done%n"
iconst_0
anewarray java.lang.Object
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.freeze:()V
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.fetchStackFrames:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
1 7 1 nextBatchSize I
final java.lang.Class<?> nextFrame();
descriptor: ()Ljava/lang/Class;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.hasNext:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.next:()Ljava/lang/Class;
astore 1
start local 1 3: aload 0
dup
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
iconst_1
iadd
putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
3 5 1 c Ljava/lang/Class<*>;
Signature: ()Ljava/lang/Class<*>;
final boolean hasNext();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.peekFrame:()Ljava/lang/Class;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
private R beginStackWalk();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.initFrameBuffer:()V
1: aload 0
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
iconst_0
2: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.curBatchFrameCount:()I
3: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
4: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.frames:()[Ljava/lang/Object;
5: invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.callStackWalk:(JIII[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
Signature: ()TR;
private int fetchStackFrames(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
istore 2
start local 2 1: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
iload 2
iload 1
invokevirtual java.lang.StackStreamFactory$FrameBuffer.resize:(II)V
2: aload 0
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
iload 1
3: iload 2
4: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.frames:()[Ljava/lang/Object;
5: invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.fetchStackFrames:(JJII[Ljava/lang/Object;)I
istore 3
start local 3 6: getstatic java.lang.StackStreamFactory.isDebug:Z
ifeq 10
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " more stack walk requesting %d got %d to %d frames%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
9: invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
10: StackMap locals: int int
StackMap stack:
iload 3
iload 2
isub
istore 4
start local 4 11: iload 4
ifne 14
12: aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
invokevirtual java.lang.StackStreamFactory$FrameBuffer.freeze:()V
13: goto 15
14: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
aload 0
getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
iload 2
iload 3
invokevirtual java.lang.StackStreamFactory$FrameBuffer.setBatch:(III)V
15: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
0 16 1 batchSize I
1 16 2 startIndex I
6 16 3 endIndex I
11 16 4 numFrames I
MethodParameters:
Name Flags
batchSize
private native R callStackWalk(long, int, int, int, );
descriptor: (JIII[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (JIII[TT;)TR;
MethodParameters:
Name Flags
mode
skipframes
batchSize
startIndex
frames
private native int fetchStackFrames(long, long, int, int, );
descriptor: (JJII[Ljava/lang/Object;)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (JJII[TT;)I
MethodParameters:
Name Flags
mode
anchor
batchSize
startIndex
frames
static int[] $SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.StackStreamFactory$WalkerState.values:()[Ljava/lang/StackStreamFactory$WalkerState;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.StackStreamFactory$WalkerState.CLOSED:Ljava/lang/StackStreamFactory$WalkerState;
invokevirtual java.lang.StackStreamFactory$WalkerState.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 java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
invokevirtual java.lang.StackStreamFactory$WalkerState.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 java.lang.StackStreamFactory$WalkerState.OPEN:Ljava/lang/StackStreamFactory$WalkerState;
invokevirtual java.lang.StackStreamFactory$WalkerState.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 java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:[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
}
Signature: <R:Ljava/lang/Object;T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "StackStreamFactory.java"
NestHost: java.lang.StackStreamFactory
InnerClasses:
abstract AbstractStackWalker = java.lang.StackStreamFactory$AbstractStackWalker of java.lang.StackStreamFactory
abstract FrameBuffer = java.lang.StackStreamFactory$FrameBuffer of java.lang.StackStreamFactory
final WalkerState = java.lang.StackStreamFactory$WalkerState of java.lang.StackStreamFactory
public final Option = java.lang.StackWalker$Option of java.lang.StackWalker