comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 1388:7666957bc44d

6937142: G1: improvements to debugging output (S-M) Summary: Various fixes to the G1 debugging output. Reviewed-by: johnc, iveresov
author tonyp
date Tue, 30 Mar 2010 15:43:03 -0400
parents 72f725c5a7be
children 1316cec51b4d
comparison
equal deleted inserted replaced
1387:0bfd3fb24150 1388:7666957bc44d
650 // still doing concurrent marking, the objects is pushed on the 650 // still doing concurrent marking, the objects is pushed on the
651 // global stack, if it is located below the global finger, otherwise 651 // global stack, if it is located below the global finger, otherwise
652 // we do nothing. 652 // we do nothing.
653 void markAndGrayObjectIfNecessary(oop p); 653 void markAndGrayObjectIfNecessary(oop p);
654 654
655 // This iterates over the marking bitmap (either prev or next) and 655 // It iterates over the heap and for each object it comes across it
656 // prints out all objects that are marked on the bitmap and indicates 656 // will dump the contents of its reference fields, as well as
657 // whether what they point to is also marked or not. It also iterates 657 // liveness information for the object and its referents. The dump
658 // the objects over TAMS (either prev or next). 658 // will be written to a file with the following name:
659 void print_reachable(bool use_prev_marking, const char* str); 659 // G1PrintReachableBaseFile + "." + str. use_prev_marking decides
660 // whether the prev (use_prev_marking == true) or next
661 // (use_prev_marking == false) marking information will be used to
662 // determine the liveness of each object / referent. If all is true,
663 // all objects in the heap will be dumped, otherwise only the live
664 // ones. In the dump the following symbols / abbreviations are used:
665 // M : an explicitly live object (its bitmap bit is set)
666 // > : an implicitly live object (over tams)
667 // O : an object outside the G1 heap (typically: in the perm gen)
668 // NOT : a reference field whose referent is not live
669 // AND MARKED : indicates that an object is both explicitly and
670 // implicitly live (it should be one or the other, not both)
671 void print_reachable(const char* str,
672 bool use_prev_marking, bool all) PRODUCT_RETURN;
660 673
661 // Clear the next marking bitmap (will be called concurrently). 674 // Clear the next marking bitmap (will be called concurrently).
662 void clearNextBitmap(); 675 void clearNextBitmap();
663 676
664 // main CMS steps and related support 677 // main CMS steps and related support