Skip to content

Commit 0c73ab3

Browse files
committed
Create 1st fix experiment
1 parent d735255 commit 0c73ab3

2 files changed

Lines changed: 22 additions & 9 deletions

File tree

src/hotspot/os/windows/os_windows.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1701,15 +1701,15 @@ static int _print_module(const char* fname, address base_address,
17011701
// in case of error it checks if .dll/.so was built for the
17021702
// same architecture as Hotspot is running on
17031703
void * os::dll_load(const char *name, char *ebuf, int ebuflen) {
1704-
log_info(os)("attempting shared library load of %s", name);
1704+
log_info(os)("attempting shared library load of %s on thread %d", name, os::current_thread_id());
17051705
void* result;
17061706
JFR_ONLY(NativeLibraryLoadEvent load_event(name, &result);)
1707-
result = LoadLibrary(name);
1707+
result = LoadLibrary(name);
17081708
if (result != nullptr) {
17091709
Events::log_dll_message(nullptr, "Loaded shared library %s", name);
17101710
// Recalculate pdb search path if a DLL was loaded successfully.
17111711
SymbolEngine::recalc_search_path();
1712-
log_info(os)("shared library load of %s was successful", name);
1712+
log_info(os)("shared library load of %s on thread %d was successful", name, os::current_thread_id());
17131713
return result;
17141714
}
17151715
DWORD errcode = GetLastError();
@@ -1718,7 +1718,7 @@ void * os::dll_load(const char *name, char *ebuf, int ebuflen) {
17181718
lasterror(ebuf, (size_t) ebuflen);
17191719
ebuf[ebuflen - 1] = '\0';
17201720
Events::log_dll_message(nullptr, "Loading shared library %s failed, error code %lu", name, errcode);
1721-
log_info(os)("shared library load of %s failed, error code %lu", name, errcode);
1721+
log_info(os)("shared library load of %s on thread %d failed, error code %lu", name, os::current_thread_id(), errcode);
17221722

17231723
if (errcode == ERROR_MOD_NOT_FOUND) {
17241724
strncpy(ebuf, "Can't find dependent libraries", ebuflen - 1);
@@ -2671,10 +2671,10 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
26712671
// Fatal red zone violation.
26722672
overflow_state->disable_stack_red_zone();
26732673
tty->print_raw_cr("An unrecoverable stack overflow has occurred.");
2674-
#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
2674+
//#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
26752675
report_error(t, exception_code, pc, exception_record,
26762676
exceptionInfo->ContextRecord);
2677-
#endif
2677+
//#endif
26782678
return EXCEPTION_CONTINUE_SEARCH;
26792679
}
26802680
} else if (exception_code == EXCEPTION_ACCESS_VIOLATION) {
@@ -2726,10 +2726,10 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
27262726
}
27272727

27282728
// Stack overflow or null pointer exception in native code.
2729-
#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
2730-
report_error(t, exception_code, pc, exception_record,
2729+
//#if !defined(USE_VECTORED_EXCEPTION_HANDLING)
2730+
report_error(t, exception_code, pc, exception_record,
27312731
exceptionInfo->ContextRecord);
2732-
#endif
2732+
//#endif
27332733
return EXCEPTION_CONTINUE_SEARCH;
27342734
} // /EXCEPTION_ACCESS_VIOLATION
27352735
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -2836,6 +2836,10 @@ LONG WINAPI topLevelVectoredExceptionFilter(struct _EXCEPTION_POINTERS* exceptio
28362836
return topLevelExceptionFilter(exceptionInfo);
28372837
}
28382838

2839+
if (AlwaysRunTopLevelExceptionFilter) {
2840+
return topLevelExceptionFilter(exceptionInfo);
2841+
}
2842+
28392843
return EXCEPTION_CONTINUE_SEARCH;
28402844
}
28412845
#endif
@@ -4461,6 +4465,12 @@ jint os::init_2(void) {
44614465
log_debug(os)(schedules_all_processor_groups ? auto_schedules_message : no_auto_schedules_message);
44624466
log_debug(os)("%d logical processors found.", processor_count());
44634467

4468+
#pragma warning(push)
4469+
#pragma warning(disable : 5048)
4470+
// warning C5048: Use of macro '__DATE__' may result in non-deterministic output
4471+
log_debug(os)("Debugging missing crashdumps: " __DATE__ " " __TIME__);
4472+
#pragma warning(pop)
4473+
44644474
// This could be set any time but all platforms
44654475
// have to set it the same so we have to mirror Solaris.
44664476
DEBUG_ONLY(os::set_mutex_init_done();)

src/hotspot/share/runtime/globals.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1985,6 +1985,9 @@ const int ObjectAlignmentInBytes = 8;
19851985
product(bool, ProfileExceptionHandlers, true, \
19861986
"Profile exception handlers") \
19871987
\
1988+
product(bool, AlwaysRunTopLevelExceptionFilter, false, \
1989+
"Always execute the top level exception filter") \
1990+
\
19881991
product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
19891992
"Unconditionally record nmethod dependencies on class " \
19901993
"rewriting/transformation independently of the JVMTI " \

0 commit comments

Comments
 (0)