< prev index next >
src/share/vm/utilities/vmError.cpp
Print this page
rev 7758 : 8065895 Synchronous signals during error reporting may terminate or hang VM process
Reviewed-by: dholmes,gziemski
Contributed-by: stuefe
*** 351,360 ****
--- 351,380 ----
} else {
st->print_cr("# There is insufficient memory for the Java "
"Runtime Environment to continue.");
}
+ #ifndef PRODUCT
+ // Error handler self tests
+
+ // test secondary error handling. Test it twice, to test that resetting
+ // error handler after a secondary crash works.
+ STEP(13, "(test secondary crash 1)")
+ if (_verbose && TestCrashInErrorHandler != 0) {
+ st->print_cr("Will crash now (TestCrashInErrorHandler=%d)...",
+ TestCrashInErrorHandler);
+ controlled_crash(TestCrashInErrorHandler);
+ }
+
+ STEP(14, "(test secondary crash 2)")
+ if (_verbose && TestCrashInErrorHandler != 0) {
+ st->print_cr("Will crash now (TestCrashInErrorHandler=%d)...",
+ TestCrashInErrorHandler);
+ controlled_crash(TestCrashInErrorHandler);
+ }
+ #endif // PRODUCT
+
STEP(15, "(printing type of error)")
switch(_id) {
case OOM_MALLOC_ERROR:
case OOM_MMAP_ERROR:
*** 784,793 ****
--- 804,822 ----
if (_verbose) {
os::print_date_and_time(st);
st->cr();
}
+ #ifndef PRODUCT
+ // print a defined marker to show that error handling finished correctly.
+ STEP(290, "(printing end marker)" )
+
+ if (_verbose) {
+ st->print_cr("END.");
+ }
+ #endif
+
END
# undef BEGIN
# undef STEP
# undef END
< prev index next >