< prev index next >

src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp

Print this page




 690                      outputStream* st):
 691     _collector(collector),
 692     _sp(sp),
 693     _live_bit_map(live_bit_map),
 694     _post_remark(collector->abstract_state() > CMSCollector::FinalMarking),
 695     _st(st) { }
 696   size_t do_blk(HeapWord* addr);
 697 };
 698 
 699 size_t BlkPrintingClosure::do_blk(HeapWord* addr) {
 700   size_t sz = _sp->block_size_no_stall(addr, _collector);
 701   assert(sz != 0, "Should always be able to compute a size");
 702   if (_sp->block_is_obj(addr)) {
 703     const bool dead = _post_remark && !_live_bit_map->isMarked(addr);
 704     _st->print_cr(PTR_FORMAT ": %s object of size " SIZE_FORMAT "%s",
 705       p2i(addr),
 706       dead ? "dead" : "live",
 707       sz,
 708       (!dead && CMSPrintObjectsInDump) ? ":" : ".");
 709     if (CMSPrintObjectsInDump && !dead) {
 710       oop(addr)->print_on(_st);
 711       _st->print_cr("--------------------------------------");
 712     }
 713   } else { // free block
 714     _st->print_cr(PTR_FORMAT ": free block of size " SIZE_FORMAT "%s",
 715       p2i(addr), sz, CMSPrintChunksInDump ? ":" : ".");
 716     if (CMSPrintChunksInDump) {
 717       ((FreeChunk*)addr)->print_on(_st);
 718       _st->print_cr("--------------------------------------");
 719     }
 720   }
 721   return sz;
 722 }
 723 
 724 void CompactibleFreeListSpace::dump_at_safepoint_with_locks(CMSCollector* c, outputStream* st) {
 725   st->print_cr("=========================");
 726   st->print_cr("Block layout in CMS Heap:");
 727   st->print_cr("=========================");
 728   BlkPrintingClosure  bpcl(c, this, c->markBitMap(), st);
 729   blk_iterate(&bpcl);
 730 




 690                      outputStream* st):
 691     _collector(collector),
 692     _sp(sp),
 693     _live_bit_map(live_bit_map),
 694     _post_remark(collector->abstract_state() > CMSCollector::FinalMarking),
 695     _st(st) { }
 696   size_t do_blk(HeapWord* addr);
 697 };
 698 
 699 size_t BlkPrintingClosure::do_blk(HeapWord* addr) {
 700   size_t sz = _sp->block_size_no_stall(addr, _collector);
 701   assert(sz != 0, "Should always be able to compute a size");
 702   if (_sp->block_is_obj(addr)) {
 703     const bool dead = _post_remark && !_live_bit_map->isMarked(addr);
 704     _st->print_cr(PTR_FORMAT ": %s object of size " SIZE_FORMAT "%s",
 705       p2i(addr),
 706       dead ? "dead" : "live",
 707       sz,
 708       (!dead && CMSPrintObjectsInDump) ? ":" : ".");
 709     if (CMSPrintObjectsInDump && !dead) {
 710       oopDesc::print_on(_st, oop(addr));
 711       _st->print_cr("--------------------------------------");
 712     }
 713   } else { // free block
 714     _st->print_cr(PTR_FORMAT ": free block of size " SIZE_FORMAT "%s",
 715       p2i(addr), sz, CMSPrintChunksInDump ? ":" : ".");
 716     if (CMSPrintChunksInDump) {
 717       ((FreeChunk*)addr)->print_on(_st);
 718       _st->print_cr("--------------------------------------");
 719     }
 720   }
 721   return sz;
 722 }
 723 
 724 void CompactibleFreeListSpace::dump_at_safepoint_with_locks(CMSCollector* c, outputStream* st) {
 725   st->print_cr("=========================");
 726   st->print_cr("Block layout in CMS Heap:");
 727   st->print_cr("=========================");
 728   BlkPrintingClosure  bpcl(c, this, c->markBitMap(), st);
 729   blk_iterate(&bpcl);
 730 


< prev index next >