< prev index next >

src/hotspot/share/utilities/vmError.cpp

Print this page
rev 49113 : 8198845: Missing resource mark results disassembling generated code failure in hs error report
Summary: Fixed secondary failure due to missing resource mark while disassembling nmethod
Reviewed-by: coleenp, stuefe, dholmes

@@ -27,10 +27,11 @@
 #include "code/codeCache.hpp"
 #include "compiler/compileBroker.hpp"
 #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"
 #include "runtime/frame.inline.hpp"
 #include "runtime/init.hpp"

@@ -771,11 +772,14 @@
          } else {
            StubCodeDesc* desc = StubCodeDesc::desc_for(_pc);
            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();
            }
          }
        }
< prev index next >