590
591 if (Universe::is_fully_initialized()) {
592 if (StubRoutines::contains(adr)) {
593 StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
594 if (desc == nullptr) {
595 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
596 }
597 if (desc != nullptr) {
598 st->print("Stub::%s", desc->name());
599 if (desc->begin() != adr) {
600 st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
601 } else if (WizardMode) {
602 st->print(" " PTR_FORMAT, p2i(adr));
603 }
604 return;
605 }
606 st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
607 return;
608 }
609
610 BarrierSet* bs = BarrierSet::barrier_set();
611 if (bs->is_a(BarrierSet::CardTableBarrierSet) &&
612 adr == ci_card_table_address_as<address>()) {
613 st->print("word_map_base");
614 if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
615 return;
616 }
617 }
618
619 if (_nm == nullptr) {
620 // Don't do this for native methods, as the function name will be printed in
621 // nmethod::reloc_string_for().
622 // Allocate the buffer on the stack instead of as RESOURCE array.
623 // In case we do DecodeErrorFile, Thread will not be initialized,
624 // causing a "assert(current != __null) failed" failure.
625 const int buflen = 1024;
626 char buf[buflen];
627 int offset;
628 if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
629 st->print(PTR_FORMAT " = %s", p2i(adr), buf);
630 if (offset != 0) {
631 st->print("+%d", offset);
632 }
|
590
591 if (Universe::is_fully_initialized()) {
592 if (StubRoutines::contains(adr)) {
593 StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
594 if (desc == nullptr) {
595 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
596 }
597 if (desc != nullptr) {
598 st->print("Stub::%s", desc->name());
599 if (desc->begin() != adr) {
600 st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
601 } else if (WizardMode) {
602 st->print(" " PTR_FORMAT, p2i(adr));
603 }
604 return;
605 }
606 st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
607 return;
608 }
609
610 if (is_card_table_address(adr)) {
611 st->print("word_map_base");
612 if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
613 return;
614 }
615 }
616
617 if (_nm == nullptr) {
618 // Don't do this for native methods, as the function name will be printed in
619 // nmethod::reloc_string_for().
620 // Allocate the buffer on the stack instead of as RESOURCE array.
621 // In case we do DecodeErrorFile, Thread will not be initialized,
622 // causing a "assert(current != __null) failed" failure.
623 const int buflen = 1024;
624 char buf[buflen];
625 int offset;
626 if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
627 st->print(PTR_FORMAT " = %s", p2i(adr), buf);
628 if (offset != 0) {
629 st->print("+%d", offset);
630 }
|