comparison src/share/vm/runtime/sharedRuntime.cpp @ 11029:9ba41a4a71ff

8004124: Handle and/or warn about SI_KERNEL Summary: Detect this crash in the signal handler and give a fatal error message instead of making us chase down bugs that don't reproduce Reviewed-by: kvn, mgerdin, dholmes
author coleenp
date Fri, 21 Jun 2013 10:50:19 -0400
parents ef57c43512d6
children 6b0fd0964b87 f98f5d48f511 583211d4b16b
comparison
equal deleted inserted replaced
11028:b3cd8b58b798 11029:9ba41a4a71ff
811 // 1. Inline-cache check in C2I handler blob, 811 // 1. Inline-cache check in C2I handler blob,
812 // 2. Inline-cache check in nmethod, or 812 // 2. Inline-cache check in nmethod, or
813 // 3. Implict null exception in nmethod 813 // 3. Implict null exception in nmethod
814 814
815 if (!cb->is_nmethod()) { 815 if (!cb->is_nmethod()) {
816 guarantee(cb->is_adapter_blob() || cb->is_method_handles_adapter_blob(), 816 bool is_in_blob = cb->is_adapter_blob() || cb->is_method_handles_adapter_blob();
817 "exception happened outside interpreter, nmethods and vtable stubs (1)"); 817 if (!is_in_blob) {
818 cb->print();
819 fatal(err_msg("exception happened outside interpreter, nmethods and vtable stubs at pc " INTPTR_FORMAT, pc));
820 }
818 Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc); 821 Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc);
819 // There is no handler here, so we will simply unwind. 822 // There is no handler here, so we will simply unwind.
820 return StubRoutines::throw_NullPointerException_at_call_entry(); 823 return StubRoutines::throw_NullPointerException_at_call_entry();
821 } 824 }
822 825