21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
|
26 #include "compiler/abstractCompiler.hpp" |
26 #include "compiler/disassembler.hpp" |
27 #include "compiler/disassembler.hpp" |
27 #include "gc_interface/collectedHeap.inline.hpp" |
28 #include "gc_interface/collectedHeap.inline.hpp" |
28 #include "interpreter/interpreter.hpp" |
29 #include "interpreter/interpreter.hpp" |
29 #include "interpreter/oopMapCache.hpp" |
30 #include "interpreter/oopMapCache.hpp" |
30 #include "memory/resourceArea.hpp" |
31 #include "memory/resourceArea.hpp" |
557 NOT_PRODUCT(address begin = pc()-40;) |
558 NOT_PRODUCT(address begin = pc()-40;) |
558 NOT_PRODUCT(address end = NULL;) |
559 NOT_PRODUCT(address end = NULL;) |
559 |
560 |
560 st->print("%s frame (sp=" INTPTR_FORMAT " unextended sp=" INTPTR_FORMAT, print_name(), sp(), unextended_sp()); |
561 st->print("%s frame (sp=" INTPTR_FORMAT " unextended sp=" INTPTR_FORMAT, print_name(), sp(), unextended_sp()); |
561 if (sp() != NULL) |
562 if (sp() != NULL) |
562 st->print(", fp=" INTPTR_FORMAT ", pc=" INTPTR_FORMAT, fp(), pc()); |
563 st->print(", fp=" INTPTR_FORMAT ", real_fp=" INTPTR_FORMAT ", pc=" INTPTR_FORMAT, fp(), real_fp(), pc()); |
563 |
564 |
564 if (StubRoutines::contains(pc())) { |
565 if (StubRoutines::contains(pc())) { |
565 st->print_cr(")"); |
566 st->print_cr(")"); |
566 st->print("("); |
567 st->print("("); |
567 StubCodeDesc* desc = StubCodeDesc::desc_for(pc()); |
568 StubCodeDesc* desc = StubCodeDesc::desc_for(pc()); |
718 st->print("v ~StubRoutines::" PTR_FORMAT, pc()); |
719 st->print("v ~StubRoutines::" PTR_FORMAT, pc()); |
719 } |
720 } |
720 } else if (_cb->is_buffer_blob()) { |
721 } else if (_cb->is_buffer_blob()) { |
721 st->print("v ~BufferBlob::%s", ((BufferBlob *)_cb)->name()); |
722 st->print("v ~BufferBlob::%s", ((BufferBlob *)_cb)->name()); |
722 } else if (_cb->is_nmethod()) { |
723 } else if (_cb->is_nmethod()) { |
723 Method* m = ((nmethod *)_cb)->method(); |
724 nmethod* nm = (nmethod*)_cb; |
|
725 Method* m = nm->method(); |
724 if (m != NULL) { |
726 if (m != NULL) { |
725 m->name_and_sig_as_C_string(buf, buflen); |
727 m->name_and_sig_as_C_string(buf, buflen); |
726 st->print("J %s @ " PTR_FORMAT " [" PTR_FORMAT "+" SIZE_FORMAT "]", |
728 st->print("J %d%s %s %s (%d bytes) @ " PTR_FORMAT " [" PTR_FORMAT "+0x%x]", |
727 buf, _pc, _cb->code_begin(), _pc - _cb->code_begin()); |
729 nm->compile_id(), (nm->is_osr_method() ? "%" : ""), |
|
730 ((nm->compiler() != NULL) ? nm->compiler()->name() : ""), |
|
731 buf, m->code_size(), _pc, _cb->code_begin(), _pc - _cb->code_begin()); |
728 } else { |
732 } else { |
729 st->print("J " PTR_FORMAT, pc()); |
733 st->print("J " PTR_FORMAT, pc()); |
730 } |
734 } |
731 } else if (_cb->is_runtime_stub()) { |
735 } else if (_cb->is_runtime_stub()) { |
732 st->print("v ~RuntimeStub::%s", ((RuntimeStub *)_cb)->name()); |
736 st->print("v ~RuntimeStub::%s", ((RuntimeStub *)_cb)->name()); |