public class com.oracle.svm.diagnosticsagent.JavaStackTraceCreator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.diagnosticsagent.JavaStackTraceCreator
super_class: java.lang.Object
{
private static final int LINE_NUMBER_UNAVAILABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private final com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti;
descriptor: Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.jni.nativeapi.JNIEnvironment jni;
descriptor: Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jni.nativeapi.JNIEnvironment);
descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
2: aload 0
aload 2
putfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
0 4 1 jvmti Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
0 4 2 jni Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
MethodParameters:
Name Flags
jvmti
jni
protected void inspectStackTraceElementMethod(com.oracle.svm.jni.nativeapi.JNIMethodId);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIMethodId;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
0 1 1 jMethodID Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
MethodParameters:
Name Flags
jMethodID
private int getCurrentThreadStackFrameCount();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.GetFrameCount:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$GetFrameCountFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetFrameCountFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/nativeimage/c/type/CIntPointer;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
invokestatic com.oracle.svm.jvmtiagentbase.Support.check:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;)V
2: aload 1
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
1 3 1 countPointer Lorg/graalvm/nativeimage/c/type/CIntPointer;
private java.lang.String getSourceFileName(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: ldc Lorg/graalvm/nativeimage/c/type/CCharPointerPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CCharPointerPointer
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.GetSourceFileName:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$GetSourceFileNameFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
aload 1
aload 2
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetSourceFileNameFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/nativeimage/c/type/CCharPointerPointer;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
astore 3
start local 3 2: aload 3
getstatic com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError.JVMTI_ERROR_NONE:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
if_acmpne 6
3: aload 2
invokeinterface org.graalvm.nativeimage.c.type.CCharPointerPointer.read:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokestatic com.oracle.svm.jvmtiagentbase.Support.fromCString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
astore 4
start local 4 4: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.Deallocate:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$DeallocateFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
aload 2
invokeinterface org.graalvm.nativeimage.c.type.CCharPointerPointer.read:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$DeallocateFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lorg/graalvm/word/PointerBase;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
pop
5: aload 4
areturn
end local 4 6: StackMap locals: org.graalvm.nativeimage.c.type.CCharPointerPointer com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
0 7 1 clazz Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
1 7 2 sourceFileNamePointer Lorg/graalvm/nativeimage/c/type/CCharPointerPointer;
2 7 3 errorCode Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
4 6 4 sourceFileName Ljava/lang/String;
MethodParameters:
Name Flags
clazz
private static int getFrameSourceLineNumber(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo);
descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 2
start local 2 1: ldc Lorg/graalvm/nativeimage/c/type/WordPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.WordPointer
astore 3
start local 3 2: aload 0
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.GetLineNumberTable:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$GetLineNumberTableFunctionPointer;
aload 0
aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getMethod:()Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
aload 2
aload 3
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetLineNumberTableFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIMethodId;Lorg/graalvm/nativeimage/c/type/CIntPointer;Lorg/graalvm/nativeimage/c/type/WordPointer;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
astore 4
start local 4 3: aload 4
getstatic com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError.JVMTI_ERROR_MUST_POSSESS_CAPABILITY:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
if_acmpeq 4
aload 4
getstatic com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError.JVMTI_ERROR_ABSENT_INFORMATION:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
if_acmpne 5
4: StackMap locals: org.graalvm.nativeimage.c.type.CIntPointer org.graalvm.nativeimage.c.type.WordPointer com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError
StackMap stack:
iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
aload 4
invokestatic com.oracle.svm.jvmtiagentbase.Support.check:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;)V
6: aload 2
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
istore 5
start local 5 7: aload 3
invokeinterface org.graalvm.nativeimage.c.type.WordPointer.read:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.Pointer
astore 6
start local 6 8: aload 6
invokeinterface org.graalvm.word.Pointer.isNonNull:()Z
invokestatic com.oracle.svm.core.util.VMError.guarantee:(Z)V
9: iconst_m1
istore 7
start local 7 10: iconst_0
istore 8
start local 8 11: goto 17
12: StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo org.graalvm.nativeimage.c.type.CIntPointer org.graalvm.nativeimage.c.type.WordPointer com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError int org.graalvm.word.Pointer int int
StackMap stack:
aload 6
iload 8
ldc Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiLineNumberEntry;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
imul
invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.jvmtiagentbase.jvmti.JvmtiLineNumberEntry
astore 9
start local 9 13: aload 9
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiLineNumberEntry.getStartLocation:()J
aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getLocation:()J
lcmp
ifle 15
14: goto 18
15: StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiLineNumberEntry
StackMap stack:
aload 9
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiLineNumberEntry.getLineNumber:()I
istore 7
end local 9 16: iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 5
if_icmplt 12
end local 8 18: StackMap locals:
StackMap stack:
aload 0
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.Deallocate:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$DeallocateFunctionPointer;
aload 0
aload 6
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$DeallocateFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lorg/graalvm/word/PointerBase;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
pop
19: iload 7
ireturn
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 20 0 jvmti Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
0 20 1 frameInfo Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;
1 20 2 entryCountPointer Lorg/graalvm/nativeimage/c/type/CIntPointer;
2 20 3 lineEntryTablePointer Lorg/graalvm/nativeimage/c/type/WordPointer;
3 20 4 errorCode Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
7 20 5 entryCount I
8 20 6 lineEntryTable Lorg/graalvm/word/Pointer;
10 20 7 previousLineNumber I
11 18 8 i I
13 16 9 entry Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiLineNumberEntry;
MethodParameters:
Name Flags
jvmti
frameInfo
private java.lang.StackTraceElement constructStackTraceElement(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo);
descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;)Ljava/lang/StackTraceElement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getMethod:()Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
invokestatic com.oracle.svm.jvmtiagentbase.Support.getMethodDeclaringClass:(Lcom/oracle/svm/jni/nativeapi/JNIMethodId;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 2
start local 2 1: aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getMethod:()Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
ldc ""
invokestatic com.oracle.svm.jvmtiagentbase.Support.getMethodNameOr:(Lcom/oracle/svm/jni/nativeapi/JNIMethodId;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 2
ldc ""
ldc ""
invokestatic com.oracle.svm.jvmtiagentbase.Support.getClassNameOr:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 3: ldc Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CCharPointer
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: iconst_m1
istore 7
start local 7 6: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.IsMethodNative:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$IsMethodNativeFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
aload 1
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getMethod:()Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
aload 5
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$IsMethodNativeFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIMethodId;Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
astore 8
start local 8 7: aload 8
getstatic com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError.JVMTI_ERROR_NONE:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
if_acmpne 10
aload 5
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.read:()B
ifne 10
8: aload 0
aload 2
invokevirtual com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.getSourceFileName:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/String;
astore 6
9: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
aload 1
invokestatic com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.getFrameSourceLineNumber:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;)I
istore 7
10: StackMap locals: com.oracle.svm.diagnosticsagent.JavaStackTraceCreator com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo com.oracle.svm.jni.nativeapi.JNIObjectHandle java.lang.String java.lang.String org.graalvm.nativeimage.c.type.CCharPointer java.lang.String int com.oracle.svm.jvmtiagentbase.jvmti.JvmtiError
StackMap stack:
new java.lang.StackTraceElement
dup
aload 4
aload 3
aload 6
iload 7
invokespecial java.lang.StackTraceElement.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
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 11 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
0 11 1 frameInfo Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;
1 11 2 declaringClass Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
2 11 3 methodName Ljava/lang/String;
3 11 4 declaringClassName Ljava/lang/String;
4 11 5 isNativePtr Lorg/graalvm/nativeimage/c/type/CCharPointer;
5 11 6 fileName Ljava/lang/String;
6 11 7 lineNumber I
7 11 8 errorCode Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
MethodParameters:
Name Flags
frameInfo
public com.oracle.svm.jni.nativeapi.JNIObjectHandle getStackTraceArray();
descriptor: ()Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=15, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.getCurrentThreadStackFrameCount:()I
istore 1
start local 1 1: ldc Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
istore 2
start local 2 2: iload 2
iload 1
imul
invokestatic org.graalvm.nativeimage.UnmanagedMemory.malloc:(I)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.Pointer
astore 3
start local 3 3: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 4
start local 4 4: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv.getFunctions:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface;
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface.GetStackTrace:()Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiInterface$GetStackTraceFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jvmti:Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
iconst_0
iload 1
aload 3
checkcast org.graalvm.nativeimage.c.type.WordPointer
aload 4
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetStackTraceFunctionPointer.invoke:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;IILorg/graalvm/nativeimage/c/type/WordPointer;Lorg/graalvm/nativeimage/c/type/CIntPointer;)Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;
invokestatic com.oracle.svm.jvmtiagentbase.Support.check:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiError;)V
5: aload 4
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
iload 1
if_icmpne 6
iconst_1
goto 7
StackMap locals: com.oracle.svm.diagnosticsagent.JavaStackTraceCreator int int org.graalvm.word.Pointer org.graalvm.nativeimage.c.type.CIntPointer
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: invokestatic com.oracle.svm.core.util.VMError.guarantee:(Z)V
8: invokestatic com.oracle.svm.jvmtiagentbase.JvmtiAgentBase.singleton:()Lcom/oracle/svm/jvmtiagentbase/JvmtiAgentBase;
checkcast com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgent
astore 5
start local 5 9: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
invokeinterface com.oracle.svm.jni.nativeapi.JNIEnvironment.getFunctions:()Lcom/oracle/svm/jni/nativeapi/JNINativeInterface;
invokeinterface com.oracle.svm.jni.nativeapi.JNINativeInterface.getNewObjectArray:()Lcom/oracle/svm/jni/nativeapi/JNIFunctionPointerTypes$NewObjectArrayFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
iload 1
aload 5
invokevirtual com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgent.handles:()Lcom/oracle/svm/jvmtiagentbase/JNIHandleSet;
checkcast com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet
getfield com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet.javaLangStackTraceElement:Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
invokeinterface com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes$NewObjectArrayFunctionPointer.invoke:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;ILcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 6
start local 6 10: iconst_0
istore 7
start local 7 11: goto 25
12: StackMap locals: com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgent com.oracle.svm.jni.nativeapi.JNIObjectHandle int
StackMap stack:
aload 3
iload 7
iload 2
imul
invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo
astore 8
start local 8 13: aload 0
aload 8
invokevirtual com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.constructStackTraceElement:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;)Ljava/lang/StackTraceElement;
astore 9
start local 9 14: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 9
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
invokestatic com.oracle.svm.jvmtiagentbase.Support.toJniString:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Ljava/lang/String;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 10
start local 10 15: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 9
invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
invokestatic com.oracle.svm.jvmtiagentbase.Support.toJniString:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Ljava/lang/String;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 11
start local 11 16: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 9
invokevirtual java.lang.StackTraceElement.getFileName:()Ljava/lang/String;
invokestatic com.oracle.svm.jvmtiagentbase.Support.toJniString:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Ljava/lang/String;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 12
start local 12 17: aload 9
invokevirtual java.lang.StackTraceElement.getLineNumber:()I
istore 13
start local 13 18: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 5
invokevirtual com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgent.handles:()Lcom/oracle/svm/jvmtiagentbase/JNIHandleSet;
checkcast com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet
getfield com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet.javaLangStackTraceElement:Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
aload 5
invokevirtual com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgent.handles:()Lcom/oracle/svm/jvmtiagentbase/JNIHandleSet;
checkcast com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet
getfield com.oracle.svm.diagnosticsagent.NativeImageDiagnosticsAgentJNIHandleSet.javaLangStackTraceElementCtor4:Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
aload 10
19: aload 11
20: aload 12
iload 13
i2l
21: invokestatic com.oracle.svm.jvmtiagentbase.Support.newObjectLLLJ:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lcom/oracle/svm/jni/nativeapi/JNIMethodId;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;J)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
astore 14
start local 14 22: aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
invokeinterface com.oracle.svm.jni.nativeapi.JNIEnvironment.getFunctions:()Lcom/oracle/svm/jni/nativeapi/JNINativeInterface;
invokeinterface com.oracle.svm.jni.nativeapi.JNINativeInterface.getSetObjectArrayElement:()Lcom/oracle/svm/jni/nativeapi/JNIFunctionPointerTypes$SetObjectArrayElementFunctionPointer;
aload 0
getfield com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.jni:Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
aload 6
iload 7
aload 14
invokeinterface com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes$SetObjectArrayElementFunctionPointer.invoke:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;ILcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
23: aload 0
aload 8
invokeinterface com.oracle.svm.jvmtiagentbase.jvmti.JvmtiFrameInfo.getMethod:()Lcom/oracle/svm/jni/nativeapi/JNIMethodId;
invokevirtual com.oracle.svm.diagnosticsagent.JavaStackTraceCreator.inspectStackTraceElementMethod:(Lcom/oracle/svm/jni/nativeapi/JNIMethodId;)V
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 24: iinc 7 1
StackMap locals:
StackMap stack:
25: iload 7
iload 1
if_icmplt 12
end local 7 26: aload 3
invokestatic org.graalvm.nativeimage.UnmanagedMemory.free:(Lorg/graalvm/word/PointerBase;)V
27: 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 28 0 this Lcom/oracle/svm/diagnosticsagent/JavaStackTraceCreator;
1 28 1 threadStackFrameCount I
2 28 2 frameInfoSize I
3 28 3 stackFramesPtr Lorg/graalvm/word/Pointer;
4 28 4 readStackFramesPtr Lorg/graalvm/nativeimage/c/type/CIntPointer;
9 28 5 agent Lcom/oracle/svm/diagnosticsagent/NativeImageDiagnosticsAgent;
10 28 6 stackTraceArray Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
11 26 7 i I
13 24 8 frameInfo Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiFrameInfo;
14 24 9 stackTraceElement Ljava/lang/StackTraceElement;
15 24 10 classNameHandle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
16 24 11 methodNameHandle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
17 24 12 sourceFileNameHandle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
18 24 13 lineNumber I
22 24 14 stackTraceElementHandle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
}
SourceFile: "JavaStackTraceCreator.java"
InnerClasses:
public abstract NewObjectArrayFunctionPointer = com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes$NewObjectArrayFunctionPointer of com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes
public abstract SetObjectArrayElementFunctionPointer = com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes$SetObjectArrayElementFunctionPointer of com.oracle.svm.jni.nativeapi.JNIFunctionPointerTypes
public abstract DeallocateFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$DeallocateFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface
public abstract GetFrameCountFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetFrameCountFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface
public abstract GetLineNumberTableFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetLineNumberTableFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface
public abstract GetSourceFileNameFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetSourceFileNameFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface
public abstract GetStackTraceFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$GetStackTraceFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface
public abstract IsMethodNativeFunctionPointer = com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface$IsMethodNativeFunctionPointer of com.oracle.svm.jvmtiagentbase.jvmti.JvmtiInterface