src/share/vm/interpreter/interpreterRuntime.cpp

changeset 10015
eb7ce841ccec
parent 9448
73d689add964
parent 9970
f614bd5c9561
equal deleted inserted replaced
9934:2251ba078bec 10015:eb7ce841ccec
454 } 454 }
455 #endif 455 #endif
456 456
457 // tracing 457 // tracing
458 if (TraceExceptions) { 458 if (TraceExceptions) {
459 ttyLocker ttyl;
460 ResourceMark rm(thread); 459 ResourceMark rm(thread);
461 tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", h_exception->print_value_string(), (address)h_exception()); 460 Symbol* message = java_lang_Throwable::detail_message(h_exception());
461 ttyLocker ttyl; // Lock after getting the detail message
462 if (message != NULL) {
463 tty->print_cr("Exception <%s: %s> (" INTPTR_FORMAT ")",
464 h_exception->print_value_string(), message->as_C_string(),
465 (address)h_exception());
466 } else {
467 tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")",
468 h_exception->print_value_string(),
469 (address)h_exception());
470 }
462 tty->print_cr(" thrown in interpreter method <%s>", h_method->print_value_string()); 471 tty->print_cr(" thrown in interpreter method <%s>", h_method->print_value_string());
463 tty->print_cr(" at bci %d for thread " INTPTR_FORMAT, current_bci, thread); 472 tty->print_cr(" at bci %d for thread " INTPTR_FORMAT, current_bci, thread);
464 } 473 }
465 // Don't go paging in something which won't be used. 474 // Don't go paging in something which won't be used.
466 // else if (extable->length() == 0) { 475 // else if (extable->length() == 0) {

mercurial