< prev index next >
src/share/vm/gc/cms/parOopClosures.inline.hpp
Print this page
@@ -80,22 +80,23 @@
if (!oopDesc::is_null(heap_oop)) {
oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
if ((HeapWord*)obj < _boundary) {
#ifndef PRODUCT
if (_g->to()->is_in_reserved(obj)) {
- tty->print_cr("Scanning field (" PTR_FORMAT ") twice?", p2i(p));
+ LogHandle(gc) log;
+ log.error("Scanning field (" PTR_FORMAT ") twice?", p2i(p));
GenCollectedHeap* gch = GenCollectedHeap::heap();
Space* sp = gch->space_containing(p);
oop obj = oop(sp->block_start(p));
assert((HeapWord*)obj < (HeapWord*)p, "Error");
- tty->print_cr("Object: " PTR_FORMAT, p2i((void *)obj));
- tty->print_cr("-------");
- obj->print();
- tty->print_cr("-----");
- tty->print_cr("Heap:");
- tty->print_cr("-----");
- gch->print();
+ log.error("Object: " PTR_FORMAT, p2i((void *)obj));
+ log.error("-------");
+ obj->print_on(log.error_stream());
+ log.error("-----");
+ log.error("Heap:");
+ log.error("-----");
+ gch->print_on(log.error_stream());
ShouldNotReachHere();
}
#endif
// OK, we need to ensure that it is copied.
// We read the klass and mark in this order, so that we can reliably
< prev index next >