class com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler extends com.oracle.svm.core.SubstrateSegfaultHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler
super_class: com.oracle.svm.core.SubstrateSegfaultHandler
{
private static final org.graalvm.nativeimage.c.function.CEntryPointLiteral<org.graalvm.nativeimage.c.function.CFunctionPointer> HANDLER_LITERAL;
descriptor: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral<Lorg/graalvm/nativeimage/c/function/CFunctionPointer;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/windows/WindowsSubstrateSegfaultHandler;
1: ldc "handler"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$EXCEPTION_POINTERS;
aastore
2: invokestatic org.graalvm.nativeimage.c.function.CEntryPointLiteral.create:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
putstatic com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler.HANDLER_LITERAL:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.svm.core.SubstrateSegfaultHandler.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/windows/WindowsSubstrateSegfaultHandler;
protected void install();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: iconst_0
getstatic com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler.HANDLER_LITERAL:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
invokevirtual org.graalvm.nativeimage.c.function.CEntryPointLiteral.getFunctionPointer:()Lorg/graalvm/nativeimage/c/function/CFunctionPointer;
invokestatic com.oracle.svm.core.windows.headers.ErrHandlingAPI.AddVectoredContinueHandler:(ILorg/graalvm/nativeimage/c/function/CFunctionPointer;)Lorg/graalvm/word/PointerBase;
invokeinterface org.graalvm.word.PointerBase.isNull:()Z
ifeq 2
1: ldc "SubstrateSegfaultHandler installation failed."
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/windows/WindowsSubstrateSegfaultHandler;
private static int handler(com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_POINTERS);
descriptor: (Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$EXCEPTION_POINTERS;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_POINTERS.ExceptionRecord:()Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$EXCEPTION_RECORD;
astore 1
start local 1 1: aload 1
invokeinterface com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_RECORD.ExceptionCode:()I
invokestatic com.oracle.svm.core.windows.headers.ErrHandlingAPI.EXCEPTION_ACCESS_VIOLATION:()I
if_icmpeq 3
2: invokestatic com.oracle.svm.core.windows.headers.ErrHandlingAPI.EXCEPTION_CONTINUE_SEARCH:()I
ireturn
3: StackMap locals: com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_RECORD
StackMap stack:
aload 0
invokeinterface com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_POINTERS.ContextRecord:()Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$CONTEXT;
astore 2
start local 2 4: aload 2
invokestatic com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler.tryEnterIsolate:(Lcom/oracle/svm/core/RegisterDumper$Context;)Z
ifeq 7
5: aload 2
invokestatic com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler.dump:(Lcom/oracle/svm/core/RegisterDumper$Context;)V
6: invokestatic com.oracle.svm.core.windows.WindowsSubstrateSegfaultHandler.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
7: StackMap locals: com.oracle.svm.core.windows.headers.ErrHandlingAPI$CONTEXT
StackMap stack:
invokestatic com.oracle.svm.core.windows.headers.ErrHandlingAPI.EXCEPTION_CONTINUE_SEARCH:()I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 exceptionInfo Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$EXCEPTION_POINTERS;
1 8 1 exceptionRecord Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$EXCEPTION_RECORD;
4 8 2 context Lcom/oracle/svm/core/windows/headers/ErrHandlingAPI$CONTEXT;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint()
com.oracle.svm.core.c.function.CEntryPointOptions(prologue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoPrologue;, epilogue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoEpilogue;, publishAs = com.oracle.svm.core.c.function.CEntryPointOptions$Publish.SymbolOnly:Lcom/oracle/svm/core/c/function/CEntryPointOptions$Publish;, include = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NotIncludedAutomatically;)
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must be uninterruptible until we get immune to safepoints.")
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_HEAP_ACCESS:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "We have yet to enter the isolate.")
MethodParameters:
Name Flags
exceptionInfo
private static java.lang.RuntimeException shouldNotReachHere();
descriptor: ()Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Must not allocate in segfault handler.", overridesCallers = true)
}
SourceFile: "WindowsSubstrateSegfaultHandler.java"
InnerClasses:
public abstract Context = com.oracle.svm.core.RegisterDumper$Context of com.oracle.svm.core.RegisterDumper
public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
public final Publish = com.oracle.svm.core.c.function.CEntryPointOptions$Publish of com.oracle.svm.core.c.function.CEntryPointOptions
public abstract CONTEXT = com.oracle.svm.core.windows.headers.ErrHandlingAPI$CONTEXT of com.oracle.svm.core.windows.headers.ErrHandlingAPI
public abstract EXCEPTION_POINTERS = com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_POINTERS of com.oracle.svm.core.windows.headers.ErrHandlingAPI
public abstract EXCEPTION_RECORD = com.oracle.svm.core.windows.headers.ErrHandlingAPI$EXCEPTION_RECORD of com.oracle.svm.core.windows.headers.ErrHandlingAPI