1.1 --- a/src/share/vm/runtime/sharedRuntime.cpp Wed Feb 15 09:43:16 2012 +0100 1.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp Wed Feb 15 10:12:55 2012 -0800 1.3 @@ -804,6 +804,7 @@ 1.4 if (thread->deopt_mark() != NULL) { 1.5 Deoptimization::cleanup_deopt_info(thread, NULL); 1.6 } 1.7 + Events::log_exception(thread, "StackOverflowError at " INTPTR_FORMAT, pc); 1.8 return StubRoutines::throw_StackOverflowError_entry(); 1.9 } 1.10 1.11 @@ -820,8 +821,10 @@ 1.12 1.13 if (vt_stub->is_abstract_method_error(pc)) { 1.14 assert(!vt_stub->is_vtable_stub(), "should never see AbstractMethodErrors from vtable-type VtableStubs"); 1.15 + Events::log_exception(thread, "AbstractMethodError at " INTPTR_FORMAT, pc); 1.16 return StubRoutines::throw_AbstractMethodError_entry(); 1.17 } else { 1.18 + Events::log_exception(thread, "NullPointerException at vtable entry " INTPTR_FORMAT, pc); 1.19 return StubRoutines::throw_NullPointerException_at_call_entry(); 1.20 } 1.21 } else { 1.22 @@ -838,6 +841,7 @@ 1.23 if (!cb->is_nmethod()) { 1.24 guarantee(cb->is_adapter_blob() || cb->is_method_handles_adapter_blob(), 1.25 "exception happened outside interpreter, nmethods and vtable stubs (1)"); 1.26 + Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc); 1.27 // There is no handler here, so we will simply unwind. 1.28 return StubRoutines::throw_NullPointerException_at_call_entry(); 1.29 } 1.30 @@ -849,6 +853,7 @@ 1.31 // => the nmethod is not yet active (i.e., the frame 1.32 // is not set up yet) => use return address pushed by 1.33 // caller => don't push another return address 1.34 + Events::log_exception(thread, "NullPointerException in IC check " INTPTR_FORMAT, pc); 1.35 return StubRoutines::throw_NullPointerException_at_call_entry(); 1.36 } 1.37