Skip to content

Commit f0dd9d4

Browse files
committed
Fix bug causing missing core dumps on Windows AArch64
1 parent d906e45 commit f0dd9d4

1 file changed

Lines changed: 1 addition & 32 deletions

File tree

src/hotspot/os/windows/os_windows.cpp

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2687,10 +2687,8 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
26872687
// Fatal red zone violation.
26882688
overflow_state->disable_stack_red_zone();
26892689
tty->print_raw_cr("An unrecoverable stack overflow has occurred.");
2690-
#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
26912690
report_error(t, exception_code, pc, exception_record,
26922691
exceptionInfo->ContextRecord);
2693-
#endif
26942692
return EXCEPTION_CONTINUE_SEARCH;
26952693
}
26962694
} else if (exception_code == EXCEPTION_ACCESS_VIOLATION) {
@@ -2742,10 +2740,8 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
27422740
}
27432741

27442742
// Stack overflow or null pointer exception in native code.
2745-
#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
27462743
report_error(t, exception_code, pc, exception_record,
27472744
exceptionInfo->ContextRecord);
2748-
#endif
27492745
return EXCEPTION_CONTINUE_SEARCH;
27502746
} // /EXCEPTION_ACCESS_VIOLATION
27512747
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -2816,33 +2812,6 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
28162812
return EXCEPTION_CONTINUE_SEARCH;
28172813
}
28182814

2819-
#if defined(USE_VECTORED_EXCEPTION_HANDLING)
2820-
LONG WINAPI topLevelVectoredExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
2821-
PEXCEPTION_RECORD exceptionRecord = exceptionInfo->ExceptionRecord;
2822-
#if defined(_M_ARM64)
2823-
address pc = (address) exceptionInfo->ContextRecord->Pc;
2824-
#elif defined(_M_AMD64)
2825-
address pc = (address) exceptionInfo->ContextRecord->Rip;
2826-
#else
2827-
#error unknown architecture
2828-
#endif
2829-
2830-
// Fast path for code part of the code cache
2831-
if (CodeCache::low_bound() <= pc && pc < CodeCache::high_bound()) {
2832-
return topLevelExceptionFilter(exceptionInfo);
2833-
}
2834-
2835-
// If the exception occurred in the codeCache, pass control
2836-
// to our normal exception handler.
2837-
CodeBlob* cb = CodeCache::find_blob(pc);
2838-
if (cb != nullptr) {
2839-
return topLevelExceptionFilter(exceptionInfo);
2840-
}
2841-
2842-
return EXCEPTION_CONTINUE_SEARCH;
2843-
}
2844-
#endif
2845-
28462815
#if defined(USE_VECTORED_EXCEPTION_HANDLING)
28472816
LONG WINAPI topLevelUnhandledExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
28482817
if (!InterceptOSException) {
@@ -4483,7 +4452,7 @@ jint os::init_2(void) {
44834452
// Setup Windows Exceptions
44844453

44854454
#if defined(USE_VECTORED_EXCEPTION_HANDLING)
4486-
topLevelVectoredExceptionHandler = AddVectoredExceptionHandler(1, topLevelVectoredExceptionFilter);
4455+
topLevelVectoredExceptionHandler = AddVectoredExceptionHandler(1, topLevelExceptionFilter);
44874456
previousUnhandledExceptionFilter = SetUnhandledExceptionFilter(topLevelUnhandledExceptionFilter);
44884457
#endif
44894458

0 commit comments

Comments
 (0)