public class SubstrateDiagnostics extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
SubstrateDiagnostics.DiagnosticLevel |
static class |
SubstrateDiagnostics.DiagnosticThunk
Can be used to implement printing of custom diagnostic information.
|
static class |
SubstrateDiagnostics.DiagnosticThunkRegistry |
static interface |
SubstrateDiagnostics.ErrorContext |
static class |
SubstrateDiagnostics.FatalErrorState |
static class |
SubstrateDiagnostics.Options |
| Constructor and Description |
|---|
SubstrateDiagnostics() |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
isFatalErrorHandlingInProgress() |
static boolean |
isFatalErrorHandlingThread() |
static int |
maxInvocations() |
static boolean |
printFatalError(Log log,
org.graalvm.word.Pointer sp,
org.graalvm.nativeimage.c.function.CodePointer ip)
|
static boolean |
printFatalError(Log log,
org.graalvm.word.Pointer sp,
org.graalvm.nativeimage.c.function.CodePointer ip,
RegisterDumper.Context registerContext,
boolean frameHasCalleeSavedRegisters)
Used to print extensive diagnostic information in case of a fatal error.
|
static void |
printInformation(Log log,
org.graalvm.word.Pointer sp,
org.graalvm.nativeimage.c.function.CodePointer ip)
|
static void |
printInformation(Log log,
org.graalvm.word.Pointer sp,
org.graalvm.nativeimage.c.function.CodePointer ip,
RegisterDumper.Context registerContext,
boolean frameHasCalleeSavedRegisters)
Prints less detailed information than
SubstrateDiagnostics.printFatalError(com.oracle.svm.core.log.Log, org.graalvm.word.Pointer, org.graalvm.nativeimage.c.function.CodePointer) but this method guarantees
that it won't cause a crash if all parts of Native Image are fully functional. |
static void |
printLocationInfo(Log log,
org.graalvm.word.UnsignedWord value,
boolean allowJavaHeapAccess,
boolean allowUnsafeOperations) |
static void |
setOnlyAttachedForCrashHandler(org.graalvm.nativeimage.IsolateThread thread) |
static void |
updateInitialInvocationCounts(String configuration) |
public static void setOnlyAttachedForCrashHandler(org.graalvm.nativeimage.IsolateThread thread)
public static boolean isFatalErrorHandlingInProgress()
public static boolean isFatalErrorHandlingThread()
public static int maxInvocations()
public static void printLocationInfo(Log log, org.graalvm.word.UnsignedWord value, boolean allowJavaHeapAccess, boolean allowUnsafeOperations)
public static void printInformation(Log log, org.graalvm.word.Pointer sp, org.graalvm.nativeimage.c.function.CodePointer ip)
public static void printInformation(Log log, org.graalvm.word.Pointer sp, org.graalvm.nativeimage.c.function.CodePointer ip, RegisterDumper.Context registerContext, boolean frameHasCalleeSavedRegisters)
SubstrateDiagnostics.printFatalError(com.oracle.svm.core.log.Log, org.graalvm.word.Pointer, org.graalvm.nativeimage.c.function.CodePointer) but this method guarantees
that it won't cause a crash if all parts of Native Image are fully functional.public static boolean printFatalError(Log log, org.graalvm.word.Pointer sp, org.graalvm.nativeimage.c.function.CodePointer ip)
public static boolean printFatalError(Log log, org.graalvm.word.Pointer sp, org.graalvm.nativeimage.c.function.CodePointer ip, RegisterDumper.Context registerContext, boolean frameHasCalleeSavedRegisters)
If a segfault handler is present, then this method may be called recursively multiple times if further errors happen while printing diagnostics. On each recursive invocation, the level of detail of the diagnostic output will be reduced gradually.
In scenarios without a segfault handler, it can happen that this method reliably causes a
subsequent error that crashes Native Image. In such a case, try to reduce the level of detail
of the diagnostic output (see SubstrateOptions.DiagnosticDetails) to get a reasonably
complete diagnostic output.
public static void updateInitialInvocationCounts(String configuration) throws IllegalArgumentException
IllegalArgumentException