--- a/src/hotspot/share/utilities/vmError.cpp Mon Mar 12 16:53:47 2018 +0100
+++ b/src/hotspot/share/utilities/vmError.cpp Mon Mar 26 09:56:36 2018 +0200
@@ -29,6 +29,7 @@
#include "compiler/disassembler.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "logging/logConfiguration.hpp"
+#include "memory/resourceArea.hpp"
#include "prims/whitebox.hpp"
#include "runtime/arguments.hpp"
#include "runtime/atomic.hpp"
@@ -774,7 +775,10 @@
if (desc != NULL) {
desc->print_on(st);
Disassembler::decode(desc->begin(), desc->end(), st);
- } else {
+ } else if (_thread != NULL) {
+ // Disassembling nmethod will incur resource memory allocation,
+ // only do so when thread is valid.
+ ResourceMark rm(_thread);
Disassembler::decode(cb, st);
st->cr();
}