625 #ifndef VALIDATE_MARK_SWEEP
626 tty->print_cr("Requires build with VALIDATE_MARK_SWEEP defined (debug build) and RecordMarkSweepCompaction enabled");
627 #else
628 MarkSweep::print_new_location_of_heap_address((HeapWord*) old_heap_addr);
629 #endif
630 }
631
632
633 extern "C" Method* findm(intptr_t pc) {
634 Command c("findm");
635 nmethod* nm = CodeCache::find_nmethod((address)pc);
636 return (nm == NULL) ? (Method*)NULL : nm->method();
637 }
638
639
640 extern "C" nmethod* findnm(intptr_t addr) {
641 Command c("findnm");
642 return CodeCache::find_nmethod((address)addr);
643 }
644
645 static address same_page(address x, address y) {
646 intptr_t page_bits = -os::vm_page_size();
647 if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits)) {
648 return x;
649 } else if (x > y) {
650 return (address)(intptr_t(y) | ~page_bits) + 1;
651 } else {
652 return (address)(intptr_t(y) & page_bits);
653 }
654 }
655
656
657 // Another interface that isn't ambiguous in dbx.
658 // Can we someday rename the other find to hsfind?
659 extern "C" void hsfind(intptr_t x) {
660 Command c("hsfind");
661 os::print_location(tty, x, false);
662 }
663
664
665 extern "C" void find(intptr_t x) {
666 Command c("find");
667 os::print_location(tty, x, false);
668 }
669
670
671 extern "C" void findpc(intptr_t x) {
672 Command c("findpc");
673 os::print_location(tty, x, true);
674 }
675
676
|
625 #ifndef VALIDATE_MARK_SWEEP
626 tty->print_cr("Requires build with VALIDATE_MARK_SWEEP defined (debug build) and RecordMarkSweepCompaction enabled");
627 #else
628 MarkSweep::print_new_location_of_heap_address((HeapWord*) old_heap_addr);
629 #endif
630 }
631
632
633 extern "C" Method* findm(intptr_t pc) {
634 Command c("findm");
635 nmethod* nm = CodeCache::find_nmethod((address)pc);
636 return (nm == NULL) ? (Method*)NULL : nm->method();
637 }
638
639
640 extern "C" nmethod* findnm(intptr_t addr) {
641 Command c("findnm");
642 return CodeCache::find_nmethod((address)addr);
643 }
644
645 // Another interface that isn't ambiguous in dbx.
646 // Can we someday rename the other find to hsfind?
647 extern "C" void hsfind(intptr_t x) {
648 Command c("hsfind");
649 os::print_location(tty, x, false);
650 }
651
652
653 extern "C" void find(intptr_t x) {
654 Command c("find");
655 os::print_location(tty, x, false);
656 }
657
658
659 extern "C" void findpc(intptr_t x) {
660 Command c("findpc");
661 os::print_location(tty, x, true);
662 }
663
664
|