diff 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
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jun 20 11:53:51 2013 +0200
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Fri Jun 21 10:50:19 2013 -0400
@@ -813,8 +813,11 @@
           // 3. Implict null exception in nmethod
 
           if (!cb->is_nmethod()) {
-            guarantee(cb->is_adapter_blob() || cb->is_method_handles_adapter_blob(),
-                      "exception happened outside interpreter, nmethods and vtable stubs (1)");
+            bool is_in_blob = cb->is_adapter_blob() || cb->is_method_handles_adapter_blob();
+            if (!is_in_blob) {
+              cb->print();
+              fatal(err_msg("exception happened outside interpreter, nmethods and vtable stubs at pc " INTPTR_FORMAT, pc));
+            }
             Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc);
             // There is no handler here, so we will simply unwind.
             return StubRoutines::throw_NullPointerException_at_call_entry();