8151603: Use error stream instead of tty for logging before ShouldNotReachHere()
Reviewed-by: mgerdin, sjohanss
--- a/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp Fri Mar 11 10:06:30 2016 +0100
+++ b/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp Fri Mar 11 10:27:45 2016 +0100
@@ -7047,13 +7047,13 @@
}
void SweepClosure::print_on(outputStream* st) const {
- tty->print_cr("_sp = [" PTR_FORMAT "," PTR_FORMAT ")",
- p2i(_sp->bottom()), p2i(_sp->end()));
- tty->print_cr("_limit = " PTR_FORMAT, p2i(_limit));
- tty->print_cr("_freeFinger = " PTR_FORMAT, p2i(_freeFinger));
- NOT_PRODUCT(tty->print_cr("_last_fc = " PTR_FORMAT, p2i(_last_fc));)
- tty->print_cr("_inFreeRange = %d, _freeRangeInFreeLists = %d, _lastFreeRangeCoalesced = %d",
- _inFreeRange, _freeRangeInFreeLists, _lastFreeRangeCoalesced);
+ st->print_cr("_sp = [" PTR_FORMAT "," PTR_FORMAT ")",
+ p2i(_sp->bottom()), p2i(_sp->end()));
+ st->print_cr("_limit = " PTR_FORMAT, p2i(_limit));
+ st->print_cr("_freeFinger = " PTR_FORMAT, p2i(_freeFinger));
+ NOT_PRODUCT(st->print_cr("_last_fc = " PTR_FORMAT, p2i(_last_fc));)
+ st->print_cr("_inFreeRange = %d, _freeRangeInFreeLists = %d, _lastFreeRangeCoalesced = %d",
+ _inFreeRange, _freeRangeInFreeLists, _lastFreeRangeCoalesced);
}
#ifndef PRODUCT
@@ -7066,8 +7066,10 @@
assert(_limit >= _sp->bottom() && _limit <= _sp->end(),
"sweep _limit out of bounds");
if (inFreeRange()) {
- warning("inFreeRange() should have been reset; dumping state of SweepClosure");
- print();
+ LogHandle(gc, sweep) log;
+ log.error("inFreeRange() should have been reset; dumping state of SweepClosure");
+ ResourceMark rm;
+ print_on(log.error_stream());
ShouldNotReachHere();
}
--- a/hotspot/src/share/vm/gc/cms/parOopClosures.inline.hpp Fri Mar 11 10:06:30 2016 +0100
+++ b/hotspot/src/share/vm/gc/cms/parOopClosures.inline.hpp Fri Mar 11 10:27:45 2016 +0100
@@ -82,18 +82,19 @@
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