< prev index next > src/hotspot/share/runtime/frame.cpp
Print this page
// handler can catch and handle the crash. Here we assume the frame is valid.
//
// First letter indicates type of the frame:
// J: Java frame (compiled)
// j: Java frame (interpreted)
+ // A: Java frame (AOT compiled and loaded after class initialization)
+ // P: Java frame (AOT compiled and preloaded before class initialization)
// V: VM frame (C/C++)
// v: Other frames running VM generated code (e.g. stubs, adapters, etc.)
// C: C/C++ frame
//
// We don't need detailed frame type as that in frame::print_name(). "C"
st->print("v ~BufferBlob::%s " PTR_FORMAT, ((BufferBlob *)_cb)->name(), p2i(pc()));
} else if (_cb->is_nmethod()) {
nmethod* nm = _cb->as_nmethod();
Method* m = nm->method();
if (m != nullptr) {
! st->print("J %d%s", nm->compile_id(), (nm->is_osr_method() ? "%" : ""));
st->print(" %s", nm->compiler_name());
m->name_and_sig_as_C_string(buf, buflen);
st->print(" %s", buf);
ModuleEntry* module = m->method_holder()->module();
if (module->is_named()) {
st->print("v ~BufferBlob::%s " PTR_FORMAT, ((BufferBlob *)_cb)->name(), p2i(pc()));
} else if (_cb->is_nmethod()) {
nmethod* nm = _cb->as_nmethod();
Method* m = nm->method();
if (m != nullptr) {
! st->print("%s", (nm->preloaded() ? "P" : (nm->is_aot() ? "A" : "J")));
+ st->print(" %d%s", nm->compile_id(), (nm->is_osr_method() ? "%" : ""));
st->print(" %s", nm->compiler_name());
m->name_and_sig_as_C_string(buf, buflen);
st->print(" %s", buf);
ModuleEntry* module = m->method_holder()->module();
if (module->is_named()) {
< prev index next >