1.1 --- a/src/share/vm/runtime/frame.cpp Fri Aug 16 13:39:26 2013 -0400 1.2 +++ b/src/share/vm/runtime/frame.cpp Fri Aug 16 14:11:40 2013 -0700 1.3 @@ -23,6 +23,7 @@ 1.4 */ 1.5 1.6 #include "precompiled.hpp" 1.7 +#include "compiler/abstractCompiler.hpp" 1.8 #include "compiler/disassembler.hpp" 1.9 #include "gc_interface/collectedHeap.inline.hpp" 1.10 #include "interpreter/interpreter.hpp" 1.11 @@ -559,7 +560,7 @@ 1.12 1.13 st->print("%s frame (sp=" INTPTR_FORMAT " unextended sp=" INTPTR_FORMAT, print_name(), sp(), unextended_sp()); 1.14 if (sp() != NULL) 1.15 - st->print(", fp=" INTPTR_FORMAT ", pc=" INTPTR_FORMAT, fp(), pc()); 1.16 + st->print(", fp=" INTPTR_FORMAT ", real_fp=" INTPTR_FORMAT ", pc=" INTPTR_FORMAT, fp(), real_fp(), pc()); 1.17 1.18 if (StubRoutines::contains(pc())) { 1.19 st->print_cr(")"); 1.20 @@ -720,11 +721,14 @@ 1.21 } else if (_cb->is_buffer_blob()) { 1.22 st->print("v ~BufferBlob::%s", ((BufferBlob *)_cb)->name()); 1.23 } else if (_cb->is_nmethod()) { 1.24 - Method* m = ((nmethod *)_cb)->method(); 1.25 + nmethod* nm = (nmethod*)_cb; 1.26 + Method* m = nm->method(); 1.27 if (m != NULL) { 1.28 m->name_and_sig_as_C_string(buf, buflen); 1.29 - st->print("J %s @ " PTR_FORMAT " [" PTR_FORMAT "+" SIZE_FORMAT "]", 1.30 - buf, _pc, _cb->code_begin(), _pc - _cb->code_begin()); 1.31 + st->print("J %d%s %s %s (%d bytes) @ " PTR_FORMAT " [" PTR_FORMAT "+0x%x]", 1.32 + nm->compile_id(), (nm->is_osr_method() ? "%" : ""), 1.33 + ((nm->compiler() != NULL) ? nm->compiler()->name() : ""), 1.34 + buf, m->code_size(), _pc, _cb->code_begin(), _pc - _cb->code_begin()); 1.35 } else { 1.36 st->print("J " PTR_FORMAT, pc()); 1.37 }