445 }
446 }
447
448 void HeapRegion::print() const { print_on(tty); }
449 void HeapRegion::print_on(outputStream* st) const {
450 st->print("|%4u", this->_hrm_index);
451 st->print("|" PTR_FORMAT ", " PTR_FORMAT ", " PTR_FORMAT,
452 p2i(bottom()), p2i(top()), p2i(end()));
453 st->print("|%3d%%", (int) ((double) used() * 100 / capacity()));
454 st->print("|%2s", get_short_type_str());
455 if (in_collection_set()) {
456 st->print("|CS");
457 } else {
458 st->print("| ");
459 }
460 st->print("|TAMS " PTR_FORMAT ", " PTR_FORMAT "| %s ",
461 p2i(prev_top_at_mark_start()), p2i(next_top_at_mark_start()), rem_set()->get_state_str());
462 if (UseNUMA) {
463 G1NUMA* numa = G1NUMA::numa();
464 if (node_index() < numa->num_active_nodes()) {
465 st->print("|%02d", numa->numa_id(node_index()));
466 } else {
467 st->print("|--");
468 }
469 }
470 st->print_cr("");
471 }
472
473 class G1VerificationClosure : public BasicOopIterateClosure {
474 protected:
475 G1CollectedHeap* _g1h;
476 G1CardTable *_ct;
477 oop _containing_obj;
478 bool _failures;
479 int _n_failures;
480 VerifyOption _vo;
481 public:
482 // _vo == UsePrevMarking -> use "prev" marking information,
483 // _vo == UseNextMarking -> use "next" marking information,
484 // _vo == UseFullMarking -> use "next" marking bitmap but no TAMS.
485 G1VerificationClosure(G1CollectedHeap* g1h, VerifyOption vo) :
486 _g1h(g1h), _ct(g1h->card_table()),
487 _containing_obj(NULL), _failures(false), _n_failures(0), _vo(vo) {
|
445 }
446 }
447
448 void HeapRegion::print() const { print_on(tty); }
449 void HeapRegion::print_on(outputStream* st) const {
450 st->print("|%4u", this->_hrm_index);
451 st->print("|" PTR_FORMAT ", " PTR_FORMAT ", " PTR_FORMAT,
452 p2i(bottom()), p2i(top()), p2i(end()));
453 st->print("|%3d%%", (int) ((double) used() * 100 / capacity()));
454 st->print("|%2s", get_short_type_str());
455 if (in_collection_set()) {
456 st->print("|CS");
457 } else {
458 st->print("| ");
459 }
460 st->print("|TAMS " PTR_FORMAT ", " PTR_FORMAT "| %s ",
461 p2i(prev_top_at_mark_start()), p2i(next_top_at_mark_start()), rem_set()->get_state_str());
462 if (UseNUMA) {
463 G1NUMA* numa = G1NUMA::numa();
464 if (node_index() < numa->num_active_nodes()) {
465 st->print("|%d", numa->numa_id(node_index()));
466 } else {
467 st->print("|-");
468 }
469 }
470 st->print_cr("");
471 }
472
473 class G1VerificationClosure : public BasicOopIterateClosure {
474 protected:
475 G1CollectedHeap* _g1h;
476 G1CardTable *_ct;
477 oop _containing_obj;
478 bool _failures;
479 int _n_failures;
480 VerifyOption _vo;
481 public:
482 // _vo == UsePrevMarking -> use "prev" marking information,
483 // _vo == UseNextMarking -> use "next" marking information,
484 // _vo == UseFullMarking -> use "next" marking bitmap but no TAMS.
485 G1VerificationClosure(G1CollectedHeap* g1h, VerifyOption vo) :
486 _g1h(g1h), _ct(g1h->card_table()),
487 _containing_obj(NULL), _failures(false), _n_failures(0), _vo(vo) {
|