src/share/vm/runtime/sharedRuntime.cpp

changeset 3571
09d00c18e323
parent 3500
0382d2b469b2
child 3900
d2a62e0f25eb
     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  

mercurial