< prev index next >

src/share/vm/gc/shared/cardTableModRefBS.cpp

Print this page




 600   verify_guard();
 601 }
 602 
 603 #ifndef PRODUCT
 604 void CardTableModRefBS::verify_region(MemRegion mr,
 605                                       jbyte val, bool val_equals) {
 606   jbyte* start    = byte_for(mr.start());
 607   jbyte* end      = byte_for(mr.last());
 608   bool failures = false;
 609   for (jbyte* curr = start; curr <= end; ++curr) {
 610     jbyte curr_val = *curr;
 611     bool failed = (val_equals) ? (curr_val != val) : (curr_val == val);
 612     if (failed) {
 613       if (!failures) {
 614         tty->cr();
 615         tty->print_cr("== CT verification failed: [" INTPTR_FORMAT "," INTPTR_FORMAT "]", p2i(start), p2i(end));
 616         tty->print_cr("==   %sexpecting value: %d",
 617                       (val_equals) ? "" : "not ", val);
 618         failures = true;
 619       }
 620       tty->print_cr("==   card "PTR_FORMAT" ["PTR_FORMAT","PTR_FORMAT"], "
 621                     "val: %d", p2i(curr), p2i(addr_for(curr)),
 622                     p2i((HeapWord*) (((size_t) addr_for(curr)) + card_size)),
 623                     (int) curr_val);
 624     }
 625   }
 626   guarantee(!failures, "there should not have been any failures");
 627 }
 628 
 629 void CardTableModRefBS::verify_not_dirty_region(MemRegion mr) {
 630   verify_region(mr, dirty_card, false /* val_equals */);
 631 }
 632 
 633 void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
 634   verify_region(mr, dirty_card, true /* val_equals */);
 635 }
 636 #endif
 637 
 638 void CardTableModRefBS::print_on(outputStream* st) const {
 639   st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
 640                p2i(_byte_map), p2i(_byte_map + _byte_map_size), p2i(byte_map_base));


 600   verify_guard();
 601 }
 602 
 603 #ifndef PRODUCT
 604 void CardTableModRefBS::verify_region(MemRegion mr,
 605                                       jbyte val, bool val_equals) {
 606   jbyte* start    = byte_for(mr.start());
 607   jbyte* end      = byte_for(mr.last());
 608   bool failures = false;
 609   for (jbyte* curr = start; curr <= end; ++curr) {
 610     jbyte curr_val = *curr;
 611     bool failed = (val_equals) ? (curr_val != val) : (curr_val == val);
 612     if (failed) {
 613       if (!failures) {
 614         tty->cr();
 615         tty->print_cr("== CT verification failed: [" INTPTR_FORMAT "," INTPTR_FORMAT "]", p2i(start), p2i(end));
 616         tty->print_cr("==   %sexpecting value: %d",
 617                       (val_equals) ? "" : "not ", val);
 618         failures = true;
 619       }
 620       tty->print_cr("==   card " PTR_FORMAT " [" PTR_FORMAT "," PTR_FORMAT "], "
 621                     "val: %d", p2i(curr), p2i(addr_for(curr)),
 622                     p2i((HeapWord*) (((size_t) addr_for(curr)) + card_size)),
 623                     (int) curr_val);
 624     }
 625   }
 626   guarantee(!failures, "there should not have been any failures");
 627 }
 628 
 629 void CardTableModRefBS::verify_not_dirty_region(MemRegion mr) {
 630   verify_region(mr, dirty_card, false /* val_equals */);
 631 }
 632 
 633 void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
 634   verify_region(mr, dirty_card, true /* val_equals */);
 635 }
 636 #endif
 637 
 638 void CardTableModRefBS::print_on(outputStream* st) const {
 639   st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
 640                p2i(_byte_map), p2i(_byte_map + _byte_map_size), p2i(byte_map_base));
< prev index next >