< prev index next >

src/hotspot/share/compiler/disassembler.cpp

Print this page




 301 
 302   if (Universe::is_fully_initialized()) {
 303     if (StubRoutines::contains(adr)) {
 304       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 305       if (desc == NULL) {
 306         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 307       }
 308       if (desc != NULL) {
 309         st->print("Stub::%s", desc->name());
 310         if (desc->begin() != adr) {
 311           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 312         } else if (WizardMode) {
 313           st->print(" " PTR_FORMAT, p2i(adr));
 314         }
 315         return;
 316       }
 317       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 318       return;
 319     }
 320 
 321     BarrierSet* bs = Universe::heap()->barrier_set();
 322     if (bs->is_a(BarrierSet::CardTableBarrierSet) &&
 323         adr == ci_card_table_address_as<address>()) {
 324       st->print("word_map_base");
 325       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 326       return;
 327     }
 328   }
 329 
 330   if (_nm == NULL) {
 331     // Don't do this for native methods, as the function name will be printed in
 332     // nmethod::reloc_string_for().
 333     ResourceMark rm;
 334     const int buflen = 1024;
 335     char* buf = NEW_RESOURCE_ARRAY(char, buflen);
 336     int offset;
 337     if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
 338       st->print(PTR_FORMAT " = %s",  p2i(adr), buf);
 339       if (offset != 0) {
 340         st->print("+%d", offset);
 341       }




 301 
 302   if (Universe::is_fully_initialized()) {
 303     if (StubRoutines::contains(adr)) {
 304       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 305       if (desc == NULL) {
 306         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 307       }
 308       if (desc != NULL) {
 309         st->print("Stub::%s", desc->name());
 310         if (desc->begin() != adr) {
 311           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 312         } else if (WizardMode) {
 313           st->print(" " PTR_FORMAT, p2i(adr));
 314         }
 315         return;
 316       }
 317       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 318       return;
 319     }
 320 
 321     BarrierSet* bs = BarrierSet::barrier_set();
 322     if (bs->is_a(BarrierSet::CardTableBarrierSet) &&
 323         adr == ci_card_table_address_as<address>()) {
 324       st->print("word_map_base");
 325       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 326       return;
 327     }
 328   }
 329 
 330   if (_nm == NULL) {
 331     // Don't do this for native methods, as the function name will be printed in
 332     // nmethod::reloc_string_for().
 333     ResourceMark rm;
 334     const int buflen = 1024;
 335     char* buf = NEW_RESOURCE_ARRAY(char, buflen);
 336     int offset;
 337     if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
 338       st->print(PTR_FORMAT " = %s",  p2i(adr), buf);
 339       if (offset != 0) {
 340         st->print("+%d", offset);
 341       }


< prev index next >