8245509: Crash handler itself crashes when reporting Unsafe.putInt(0) crash
Added ResourceMarker
Reviewed-by: coleenp, dholmes
diff --git a/src/hotspot/share/utilities/vmError.cpp b/src/hotspot/share/utilities/vmError.cpp
index a132315..5502d3d 100644
--- a/src/hotspot/share/utilities/vmError.cpp
+++ b/src/hotspot/share/utilities/vmError.cpp
@@ -776,7 +776,8 @@
STEP("printing register info")
// decode register contents if possible
- if (_verbose && _context && Universe::is_fully_initialized()) {
+ if (_verbose && _context && _thread && Universe::is_fully_initialized()) {
+ ResourceMark rm(_thread);
os::print_register_info(st, _context);
st->cr();
}
@@ -792,7 +793,7 @@
STEP("inspecting top of stack")
// decode stack contents if possible
- if (_verbose && _context && Universe::is_fully_initialized()) {
+ if (_verbose && _context && _thread && Universe::is_fully_initialized()) {
frame fr = os::fetch_frame_from_context(_context);
const int slots = 8;
const intptr_t *start = fr.sp();
@@ -801,6 +802,7 @@
st->print_cr("Stack slot to memory mapping:");
for (int i = 0; i < slots; ++i) {
st->print("stack at sp + %d slots: ", i);
+ ResourceMark rm(_thread);
os::print_location(st, *(start + i));
}
}