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 |