2386 CallRelocation* r = (CallRelocation*)iter.reloc(); 2387 address dest = r->destination(); 2388 CodeBlob* cb = CodeCache::find_blob(dest); 2389 if (cb != NULL) { 2390 st.print(" %s", cb->name()); 2391 } else { 2392 ResourceMark rm; 2393 const int buflen = 1024; 2394 char* buf = NEW_RESOURCE_ARRAY(char, buflen); 2395 int offset; 2396 if (os::dll_address_to_function_name(dest, buf, buflen, &offset)) { 2397 st.print(" %s", buf); 2398 if (offset != 0) { 2399 st.print("+%d", offset); 2400 } 2401 } 2402 } 2403 return st.as_string(); 2404 } 2405 case relocInfo::virtual_call_type: { 2406 stringStream st; 2407 st.print_raw("virtual_call"); 2408 virtual_call_Relocation* r = iter.virtual_call_reloc(); 2409 Method* m = r->method_value(); 2410 if (m != NULL) { 2411 assert(m->is_method(), ""); 2412 m->print_short_name(&st); 2413 } 2414 return st.as_string(); 2415 } 2416 case relocInfo::opt_virtual_call_type: { 2417 stringStream st; 2418 st.print_raw("optimized virtual_call"); 2419 opt_virtual_call_Relocation* r = iter.opt_virtual_call_reloc(); 2420 Method* m = r->method_value(); 2421 if (m != NULL) { 2422 assert(m->is_method(), ""); 2423 m->print_short_name(&st); 2424 } 2425 return st.as_string(); 2426 } 2427 case relocInfo::static_call_type: { 2428 stringStream st; 2429 st.print_raw("static_call"); 2430 static_call_Relocation* r = iter.static_call_reloc(); 2431 Method* m = r->method_value(); 2432 if (m != NULL) { 2433 assert(m->is_method(), ""); 2434 m->print_short_name(&st); 2435 } 2436 return st.as_string(); 2437 } 2438 case relocInfo::static_stub_type: return "static_stub"; 2439 case relocInfo::external_word_type: return "external_word"; 2440 case relocInfo::internal_word_type: return "internal_word"; 2441 case relocInfo::section_word_type: return "section_word"; 2442 case relocInfo::poll_type: return "poll"; 2443 case relocInfo::poll_return_type: return "poll_return"; 2444 case relocInfo::type_mask: return "type_bit_mask"; 2445 2446 default: 2447 break; | 2386 CallRelocation* r = (CallRelocation*)iter.reloc(); 2387 address dest = r->destination(); 2388 CodeBlob* cb = CodeCache::find_blob(dest); 2389 if (cb != NULL) { 2390 st.print(" %s", cb->name()); 2391 } else { 2392 ResourceMark rm; 2393 const int buflen = 1024; 2394 char* buf = NEW_RESOURCE_ARRAY(char, buflen); 2395 int offset; 2396 if (os::dll_address_to_function_name(dest, buf, buflen, &offset)) { 2397 st.print(" %s", buf); 2398 if (offset != 0) { 2399 st.print("+%d", offset); 2400 } 2401 } 2402 } 2403 return st.as_string(); 2404 } 2405 case relocInfo::virtual_call_type: { 2406 ResourceMark rm; 2407 stringStream st; 2408 st.print_raw("virtual_call"); 2409 virtual_call_Relocation* r = iter.virtual_call_reloc(); 2410 Method* m = r->method_value(); 2411 if (m != NULL) { 2412 assert(m->is_method(), ""); 2413 m->print_short_name(&st); 2414 } 2415 return st.as_string(); 2416 } 2417 case relocInfo::opt_virtual_call_type: { 2418 ResourceMark rm; 2419 stringStream st; 2420 st.print_raw("optimized virtual_call"); 2421 opt_virtual_call_Relocation* r = iter.opt_virtual_call_reloc(); 2422 Method* m = r->method_value(); 2423 if (m != NULL) { 2424 assert(m->is_method(), ""); 2425 m->print_short_name(&st); 2426 } 2427 return st.as_string(); 2428 } 2429 case relocInfo::static_call_type: { 2430 ResourceMark rm; 2431 stringStream st; 2432 st.print_raw("static_call"); 2433 static_call_Relocation* r = iter.static_call_reloc(); 2434 Method* m = r->method_value(); 2435 if (m != NULL) { 2436 assert(m->is_method(), ""); 2437 m->print_short_name(&st); 2438 } 2439 return st.as_string(); 2440 } 2441 case relocInfo::static_stub_type: return "static_stub"; 2442 case relocInfo::external_word_type: return "external_word"; 2443 case relocInfo::internal_word_type: return "internal_word"; 2444 case relocInfo::section_word_type: return "section_word"; 2445 case relocInfo::poll_type: return "poll"; 2446 case relocInfo::poll_return_type: return "poll_return"; 2447 case relocInfo::type_mask: return "type_bit_mask"; 2448 2449 default: 2450 break; |