< prev index next >

src/share/vm/compiler/disassembler.cpp

Print this page
rev 12310 : [mq]: gcinterface.patch


 318 
 319   if (Universe::is_fully_initialized()) {
 320     if (StubRoutines::contains(adr)) {
 321       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 322       if (desc == NULL) {
 323         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 324       }
 325       if (desc != NULL) {
 326         st->print("Stub::%s", desc->name());
 327         if (desc->begin() != adr) {
 328           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 329         } else if (WizardMode) {
 330           st->print(" " PTR_FORMAT, p2i(adr));
 331         }
 332         return;
 333       }
 334       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 335       return;
 336     }
 337 
 338     BarrierSet* bs = Universe::heap()->barrier_set();
 339     if (bs->is_a(BarrierSet::CardTableModRef) &&
 340         adr == (address)(barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base)) {
 341       st->print("word_map_base");
 342       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 343       return;
 344     }
 345   }
 346 
 347   if (_nm == NULL) {
 348     // Don't do this for native methods, as the function name will be printed in
 349     // nmethod::reloc_string_for().
 350     ResourceMark rm;
 351     const int buflen = 1024;
 352     char* buf = NEW_RESOURCE_ARRAY(char, buflen);
 353     int offset;
 354     if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
 355       st->print(PTR_FORMAT " = %s",  p2i(adr), buf);
 356       if (offset != 0) {
 357         st->print("+%d", offset);
 358       }




 318 
 319   if (Universe::is_fully_initialized()) {
 320     if (StubRoutines::contains(adr)) {
 321       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 322       if (desc == NULL) {
 323         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 324       }
 325       if (desc != NULL) {
 326         st->print("Stub::%s", desc->name());
 327         if (desc->begin() != adr) {
 328           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 329         } else if (WizardMode) {
 330           st->print(" " PTR_FORMAT, p2i(adr));
 331         }
 332         return;
 333       }
 334       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 335       return;
 336     }
 337 
 338     BarrierSet* bs = GC::gc()->heap()->barrier_set();
 339     if (bs->is_a(BarrierSet::CardTableModRef) &&
 340         adr == (address)(barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base)) {
 341       st->print("word_map_base");
 342       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 343       return;
 344     }
 345   }
 346 
 347   if (_nm == NULL) {
 348     // Don't do this for native methods, as the function name will be printed in
 349     // nmethod::reloc_string_for().
 350     ResourceMark rm;
 351     const int buflen = 1024;
 352     char* buf = NEW_RESOURCE_ARRAY(char, buflen);
 353     int offset;
 354     if (os::dll_address_to_function_name(adr, buf, buflen, &offset)) {
 355       st->print(PTR_FORMAT " = %s",  p2i(adr), buf);
 356       if (offset != 0) {
 357         st->print("+%d", offset);
 358       }


< prev index next >