< prev index next >
src/share/vm/utilities/vmError.cpp
Print this page
@@ -24,10 +24,11 @@
#include <fcntl.h>
#include "precompiled.hpp"
#include "compiler/compileBroker.hpp"
#include "gc_interface/collectedHeap.hpp"
+#include "jfr/jfrEvents.hpp"
#include "prims/whitebox.hpp"
#include "runtime/arguments.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/init.hpp"
#include "runtime/os.hpp"
@@ -40,10 +41,14 @@
#include "utilities/defaultStream.hpp"
#include "utilities/errorReporter.hpp"
#include "utilities/events.hpp"
#include "utilities/top.hpp"
#include "utilities/vmError.hpp"
+#include "utilities/macros.hpp"
+#if INCLUDE_JFR
+#include "jfr/jfr.hpp"
+#endif
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
// List of environment variables that should be reported in error log file.
const char *env_list[] = {
@@ -937,10 +942,17 @@
// reset signal handlers or exception filter; make sure recursive crashes
// are handled properly.
reset_signal_handlers();
+ EventShutdown e;
+ if (e.should_commit()) {
+ e.set_reason("VM Error");
+ e.commit();
+ }
+
+ JFR_ONLY(Jfr::on_vm_shutdown(true);)
} else {
// If UseOsErrorReporting we call this for each level of the call stack
// while searching for the exception handler. Only the first level needs
// to be reported.
if (UseOSErrorReporting && log_done) return;
< prev index next >