610 extern "C" void events() { |
610 extern "C" void events() { |
611 Command c("events"); |
611 Command c("events"); |
612 Events::print(); |
612 Events::print(); |
613 } |
613 } |
614 |
614 |
615 // Given a heap address that was valid before the most recent GC, if |
|
616 // the oop that used to contain it is still live, prints the new |
|
617 // location of the oop and the address. Useful for tracking down |
|
618 // certain kinds of naked oop and oop map bugs. |
|
619 extern "C" void pnl(intptr_t old_heap_addr) { |
|
620 // Print New Location of old heap address |
|
621 Command c("pnl"); |
|
622 #ifndef VALIDATE_MARK_SWEEP |
|
623 tty->print_cr("Requires build with VALIDATE_MARK_SWEEP defined (debug build) and RecordMarkSweepCompaction enabled"); |
|
624 #else |
|
625 MarkSweep::print_new_location_of_heap_address((HeapWord*) old_heap_addr); |
|
626 #endif |
|
627 } |
|
628 |
|
629 |
|
630 extern "C" Method* findm(intptr_t pc) { |
615 extern "C" Method* findm(intptr_t pc) { |
631 Command c("findm"); |
616 Command c("findm"); |
632 nmethod* nm = CodeCache::find_nmethod((address)pc); |
617 nmethod* nm = CodeCache::find_nmethod((address)pc); |
633 return (nm == NULL) ? (Method*)NULL : nm->method(); |
618 return (nm == NULL) ? (Method*)NULL : nm->method(); |
634 } |
619 } |