< prev index next >

src/hotspot/share/compiler/disassembler.cpp

Print this page

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       }
< prev index next >