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 }
|