src/share/vm/interpreter/bytecodeInterpreter.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Jan 5 12:33:32 2016
--- new/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Jan 5 12:33:32 2016
*** 2778,2812 ****
--- 2778,2830 ----
// Place exception on top of stack
SET_STACK_OBJECT(except_oop(), 0);
MORE_STACK(1);
pc = METHOD->code_base() + continuation_bci;
if (log_is_enabled(Info, exceptions)) {
! ResourceMark rm(thread);
log_info(exceptions)("Exception <%s> (" INTPTR_FORMAT ")\n"
" thrown in interpreter method <%s>\n"
+ Symbol* message = java_lang_Throwable::detail_message(except_oop());
+ stringStream tempst;
+ if (message != NULL) {
+ tempst.print("Exception <%s: %s> (" INTPTR_FORMAT ")\n",
+ except_oop->print_value_string(), message->as_C_string(),
+ p2i(except_oop()));
+ } else {
+ tempst.print("Exception <%s> (" INTPTR_FORMAT ")\n",
+ except_oop->print_value_string(), p2i(except_oop()));
+ }
+ tempst.print(" thrown in interpreter method <%s>\n"
" at bci %d, continuing at %d for thread " INTPTR_FORMAT,
except_oop->print_value_string(), p2i(except_oop()),
METHOD->print_value_string(),
(int)(istate->bcp() - METHOD->code_base()),
(int)continuation_bci, p2i(THREAD));
+ LogHandle(exceptions)::info_stream()->print_raw_cr(tempst.as_string());
}
// for AbortVMOnException flag
Exceptions::debug_check_abort(except_oop);
// Update profiling data.
BI_PROFILE_ALIGN_TO_CURRENT_BCI();
goto run;
}
if (log_is_enabled(Info, exceptions)) {
ResourceMark rm;
log_info(exceptions)("Exception <%s> (" INTPTR_FORMAT ")\n"
" thrown in interpreter method <%s>\n"
+ Symbol* message = java_lang_Throwable::detail_message(except_oop());
+ stringStream tempst;
+ if (message != NULL) {
+ tempst.print("Exception <%s: %s> (" INTPTR_FORMAT ")\n",
+ except_oop->print_value_string(), message->as_C_string(),
+ p2i(except_oop()));
+ } else {
+ tempst.print("Exception <%s> (" INTPTR_FORMAT ")\n",
+ except_oop->print_value_string(), p2i(except_oop()));
+ }
+ tempst.print(" thrown in interpreter method <%s>\n"
" at bci %d, unwinding for thread " INTPTR_FORMAT,
except_oop->print_value_string(), p2i(except_oop()),
METHOD->print_value_string(),
(int)(istate->bcp() - METHOD->code_base()),
p2i(THREAD));
+ LogHandle(exceptions)::info_stream()->print_raw_cr(tempst.as_string());
}
// for AbortVMOnException flag
Exceptions::debug_check_abort(except_oop);
// No handler in this activation, unwind and try again
src/share/vm/interpreter/bytecodeInterpreter.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File