hotspot/src/share/vm/gc/cms/parOopClosures.inline.hpp
changeset 37071 d7750d171889
parent 35061 be6025ebffea
child 37242 91e5f98fff6f
equal deleted inserted replaced
37069:732328249e62 37071:d7750d171889
    80   if (!oopDesc::is_null(heap_oop)) {
    80   if (!oopDesc::is_null(heap_oop)) {
    81     oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
    81     oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
    82     if ((HeapWord*)obj < _boundary) {
    82     if ((HeapWord*)obj < _boundary) {
    83 #ifndef PRODUCT
    83 #ifndef PRODUCT
    84       if (_g->to()->is_in_reserved(obj)) {
    84       if (_g->to()->is_in_reserved(obj)) {
    85         tty->print_cr("Scanning field (" PTR_FORMAT ") twice?", p2i(p));
    85         LogHandle(gc) log;
       
    86         log.error("Scanning field (" PTR_FORMAT ") twice?", p2i(p));
    86         GenCollectedHeap* gch = GenCollectedHeap::heap();
    87         GenCollectedHeap* gch = GenCollectedHeap::heap();
    87         Space* sp = gch->space_containing(p);
    88         Space* sp = gch->space_containing(p);
    88         oop obj = oop(sp->block_start(p));
    89         oop obj = oop(sp->block_start(p));
    89         assert((HeapWord*)obj < (HeapWord*)p, "Error");
    90         assert((HeapWord*)obj < (HeapWord*)p, "Error");
    90         tty->print_cr("Object: " PTR_FORMAT, p2i((void *)obj));
    91         log.error("Object: " PTR_FORMAT, p2i((void *)obj));
    91         tty->print_cr("-------");
    92         log.error("-------");
    92         obj->print();
    93         obj->print_on(log.error_stream());
    93         tty->print_cr("-----");
    94         log.error("-----");
    94         tty->print_cr("Heap:");
    95         log.error("Heap:");
    95         tty->print_cr("-----");
    96         log.error("-----");
    96         gch->print();
    97         gch->print_on(log.error_stream());
    97         ShouldNotReachHere();
    98         ShouldNotReachHere();
    98       }
    99       }
    99 #endif
   100 #endif
   100       // OK, we need to ensure that it is copied.
   101       // OK, we need to ensure that it is copied.
   101       // We read the klass and mark in this order, so that we can reliably
   102       // We read the klass and mark in this order, so that we can reliably