equal
deleted
inserted
replaced
281 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset); |
281 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset); |
282 if (desc != NULL) { |
282 if (desc != NULL) { |
283 st->print("Stub::%s", desc->name()); |
283 st->print("Stub::%s", desc->name()); |
284 if (desc->begin() != adr) |
284 if (desc->begin() != adr) |
285 st->print("%+d 0x%p",adr - desc->begin(), adr); |
285 st->print("%+d 0x%p",adr - desc->begin(), adr); |
286 else if (WizardMode) st->print(" " INTPTR_FORMAT, adr); |
286 else if (WizardMode) st->print(" " PTR_FORMAT, adr); |
287 return; |
287 return; |
288 } |
288 } |
289 st->print("Stub::<unknown> " INTPTR_FORMAT, adr); |
289 st->print("Stub::<unknown> " PTR_FORMAT, adr); |
290 return; |
290 return; |
291 } |
291 } |
292 |
292 |
293 BarrierSet* bs = Universe::heap()->barrier_set(); |
293 BarrierSet* bs = Universe::heap()->barrier_set(); |
294 if (bs->kind() == BarrierSet::CardTableModRef && |
294 if (bs->kind() == BarrierSet::CardTableModRef && |
312 } |
312 } |
313 return; |
313 return; |
314 } |
314 } |
315 } |
315 } |
316 |
316 |
317 // Fall through to a simple numeral. |
317 // Fall through to a simple (hexadecimal) numeral. |
318 st->print(INTPTR_FORMAT, (intptr_t)adr); |
318 st->print(PTR_FORMAT, adr); |
319 } |
319 } |
320 |
320 |
321 void decode_env::print_insn_labels() { |
321 void decode_env::print_insn_labels() { |
322 address p = cur_insn(); |
322 address p = cur_insn(); |
323 outputStream* st = output(); |
323 outputStream* st = output(); |
324 CodeBlob* cb = _code; |
324 CodeBlob* cb = _code; |
325 if (cb != NULL) { |
325 if (cb != NULL) { |
326 cb->print_block_comment(st, p); |
326 cb->print_block_comment(st, p); |
327 } |
327 } |
328 if (_print_pc) { |
328 if (_print_pc) { |
329 st->print(" " INTPTR_FORMAT ": ", (intptr_t) p); |
329 st->print(" " PTR_FORMAT ": ", p); |
330 } |
330 } |
331 } |
331 } |
332 |
332 |
333 void decode_env::print_insn_bytes(address pc, address pc_limit) { |
333 void decode_env::print_insn_bytes(address pc, address pc_limit) { |
334 outputStream* st = output(); |
334 outputStream* st = output(); |
430 |
430 |
431 |
431 |
432 void Disassembler::decode(CodeBlob* cb, outputStream* st) { |
432 void Disassembler::decode(CodeBlob* cb, outputStream* st) { |
433 if (!load_library()) return; |
433 if (!load_library()) return; |
434 decode_env env(cb, st); |
434 decode_env env(cb, st); |
435 env.output()->print_cr("Decoding CodeBlob " INTPTR_FORMAT, cb); |
435 env.output()->print_cr("Decoding CodeBlob " PTR_FORMAT, cb); |
436 env.decode_instructions(cb->code_begin(), cb->code_end()); |
436 env.decode_instructions(cb->code_begin(), cb->code_end()); |
437 } |
437 } |
438 |
438 |
439 |
439 |
440 void Disassembler::decode(address start, address end, outputStream* st) { |
440 void Disassembler::decode(address start, address end, outputStream* st) { |
444 } |
444 } |
445 |
445 |
446 void Disassembler::decode(nmethod* nm, outputStream* st) { |
446 void Disassembler::decode(nmethod* nm, outputStream* st) { |
447 if (!load_library()) return; |
447 if (!load_library()) return; |
448 decode_env env(nm, st); |
448 decode_env env(nm, st); |
449 env.output()->print_cr("Decoding compiled method " INTPTR_FORMAT ":", nm); |
449 env.output()->print_cr("Decoding compiled method " PTR_FORMAT ":", nm); |
450 env.output()->print_cr("Code:"); |
450 env.output()->print_cr("Code:"); |
451 |
451 |
452 #ifdef SHARK |
452 #ifdef SHARK |
453 SharkEntry* entry = (SharkEntry *) nm->code_begin(); |
453 SharkEntry* entry = (SharkEntry *) nm->code_begin(); |
454 unsigned char* p = entry->code_start(); |
454 unsigned char* p = entry->code_start(); |
476 if (nm->consts_size() > 0) { |
476 if (nm->consts_size() > 0) { |
477 nm->print_nmethod_labels(env.output(), nm->consts_begin()); |
477 nm->print_nmethod_labels(env.output(), nm->consts_begin()); |
478 int offset = 0; |
478 int offset = 0; |
479 for (address p = nm->consts_begin(); p < nm->consts_end(); p += 4, offset += 4) { |
479 for (address p = nm->consts_begin(); p < nm->consts_end(); p += 4, offset += 4) { |
480 if ((offset % 8) == 0) { |
480 if ((offset % 8) == 0) { |
481 env.output()->print_cr(" " INTPTR_FORMAT " (offset: %4d): " PTR32_FORMAT " " PTR64_FORMAT, (intptr_t) p, offset, *((int32_t*) p), *((int64_t*) p)); |
481 env.output()->print_cr(" " PTR_FORMAT " (offset: %4d): " PTR32_FORMAT " " PTR64_FORMAT, p, offset, *((int32_t*) p), *((int64_t*) p)); |
482 } else { |
482 } else { |
483 env.output()->print_cr(" " INTPTR_FORMAT " (offset: %4d): " PTR32_FORMAT, (intptr_t) p, offset, *((int32_t*) p)); |
483 env.output()->print_cr(" " PTR_FORMAT " (offset: %4d): " PTR32_FORMAT, p, offset, *((int32_t*) p)); |
484 } |
484 } |
485 } |
485 } |
486 } |
486 } |
487 |
487 |
488 env.decode_instructions(p, end); |
488 env.decode_instructions(p, end); |