< prev index next >

src/share/vm/utilities/debug.cpp

Print this page
rev 8977 : imported patch assert
rev 8978 : imported patch remove_err_msg
rev 8979 : [mq]: vmerr_static

*** 79,92 **** #endif // PRODUCT PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC FormatBufferResource::FormatBufferResource(const char * format, ...) ! : FormatBufferBase((char*)resource_allocate_bytes(RES_BUFSZ)) { va_list argp; va_start(argp, format); ! jio_vsnprintf(_buf, RES_BUFSZ, format, argp); va_end(argp); } ATTRIBUTE_PRINTF(1, 2) void warning(const char* format, ...) { --- 79,92 ---- #endif // PRODUCT PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC FormatBufferResource::FormatBufferResource(const char * format, ...) ! : FormatBufferBase((char*)resource_allocate_bytes(BUFSZ)) { va_list argp; va_start(argp, format); ! jio_vsnprintf(_buf, BUFSZ, format, argp); va_end(argp); } ATTRIBUTE_PRINTF(1, 2) void warning(const char* format, ...) {
*** 205,234 **** // Place-holder for non-existent suppression check: #define error_is_suppressed(file_name, line_no) (false) #endif // !PRODUCT ! void report_vm_error(const char* file, int line, const char* error_msg, ! const char* detail_msg) { if (Debugging || error_is_suppressed(file, line)) return; ! Thread* const thread = ThreadLocalStorage::get_thread_slow(); ! VMError err(thread, file, line, error_msg, detail_msg); ! err.report_and_die(); } ! void report_fatal(const char* file, int line, const char* message) { ! report_vm_error(file, line, "fatal error", message); } void report_vm_out_of_memory(const char* file, int line, size_t size, ! VMErrorType vm_err_type, const char* message) { if (Debugging) return; ! ! Thread* thread = ThreadLocalStorage::get_thread_slow(); ! VMError(thread, file, line, size, vm_err_type, message).report_and_die(); // The UseOSErrorReporting option in report_and_die() may allow a return // to here. If so then we'll have to figure out how to handle it. guarantee(false, "report_and_die() should not return here"); } --- 205,244 ---- // Place-holder for non-existent suppression check: #define error_is_suppressed(file_name, line_no) (false) #endif // !PRODUCT ! void report_vm_error(const char* file, int line, const char* error_msg) ! { ! report_vm_error(file, line, error_msg, "%s", ""); ! } ! ! void report_vm_error(const char* file, int line, const char* error_msg, const char* detail_fmt, ...) { if (Debugging || error_is_suppressed(file, line)) return; ! va_list detail_args; ! va_start(detail_args, detail_fmt); ! VMError::report_and_die(ThreadLocalStorage::get_thread_slow(), file, line, error_msg, detail_fmt, detail_args); ! va_end(detail_args); } ! void report_fatal(const char* file, int line, const char* detail_fmt, ...) { ! if (Debugging || error_is_suppressed(file, line)) return; ! va_list detail_args; ! va_start(detail_args, detail_fmt); ! VMError::report_and_die(ThreadLocalStorage::get_thread_slow(), file, line, "fatal error", detail_fmt, detail_args); ! va_end(detail_args); } void report_vm_out_of_memory(const char* file, int line, size_t size, ! VMErrorType vm_err_type, const char* detail_fmt, ...) { if (Debugging) return; ! va_list detail_args; ! va_start(detail_args, detail_fmt); ! VMError::report_and_die(ThreadLocalStorage::get_thread_slow(), file, line, size, vm_err_type, detail_fmt, detail_args); ! va_end(detail_args); // The UseOSErrorReporting option in report_and_die() may allow a return // to here. If so then we'll have to figure out how to handle it. guarantee(false, "report_and_die() should not return here"); }
*** 293,304 **** tty->print_cr("java.lang.OutOfMemoryError: %s", message); HeapDumper::dump_heap_from_oome(); } if (OnOutOfMemoryError && OnOutOfMemoryError[0]) { ! VMError err(message); ! err.report_java_out_of_memory(); } } } static bool error_reported = false; --- 303,313 ---- tty->print_cr("java.lang.OutOfMemoryError: %s", message); HeapDumper::dump_heap_from_oome(); } if (OnOutOfMemoryError && OnOutOfMemoryError[0]) { ! VMError::report_java_out_of_memory(message); } } } static bool error_reported = false;
*** 367,388 **** // Keep this in sync with test/runtime/6888954/vmerrors.sh. switch (how) { case 1: vmassert(str == NULL, "expected null"); case 2: vmassert(num == 1023 && *str == 'X', ! err_msg("num=" SIZE_FORMAT " str=\"%s\"", num, str)); case 3: guarantee(str == NULL, "expected null"); case 4: guarantee(num == 1023 && *str == 'X', ! err_msg("num=" SIZE_FORMAT " str=\"%s\"", num, str)); case 5: fatal("expected null"); ! case 6: fatal(err_msg("num=" SIZE_FORMAT " str=\"%s\"", num, str)); ! case 7: fatal(err_msg("%s%s# %s%s# %s%s# %s%s# %s%s# " "%s%s# %s%s# %s%s# %s%s# %s%s# " "%s%s# %s%s# %s%s# %s%s# %s", msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, ! msg, eol, msg, eol, msg, eol, msg, eol, msg)); case 8: vm_exit_out_of_memory(num, OOM_MALLOC_ERROR, "ChunkPool::allocate"); case 9: ShouldNotCallThis(); case 10: ShouldNotReachHere(); case 11: Unimplemented(); // There's no guarantee the bad data pointer will crash us --- 376,397 ---- // Keep this in sync with test/runtime/6888954/vmerrors.sh. switch (how) { case 1: vmassert(str == NULL, "expected null"); case 2: vmassert(num == 1023 && *str == 'X', ! "num=" SIZE_FORMAT " str=\"%s\"", num, str); case 3: guarantee(str == NULL, "expected null"); case 4: guarantee(num == 1023 && *str == 'X', ! "num=" SIZE_FORMAT " str=\"%s\"", num, str); case 5: fatal("expected null"); ! case 6: fatal("num=" SIZE_FORMAT " str=\"%s\"", num, str); ! case 7: fatal("%s%s# %s%s# %s%s# %s%s# %s%s# " "%s%s# %s%s# %s%s# %s%s# %s%s# " "%s%s# %s%s# %s%s# %s%s# %s", msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, msg, eol, ! msg, eol, msg, eol, msg, eol, msg, eol, msg); case 8: vm_exit_out_of_memory(num, OOM_MALLOC_ERROR, "ChunkPool::allocate"); case 9: ShouldNotCallThis(); case 10: ShouldNotReachHere(); case 11: Unimplemented(); // There's no guarantee the bad data pointer will crash us
< prev index next >