--- old/src/hotspot/share/runtime/os.cpp 2018-04-20 00:47:17.000000000 +0100 +++ new/src/hotspot/share/runtime/os.cpp 2018-04-20 00:47:17.000000000 +0100 @@ -1068,7 +1068,7 @@ } if (Universe::heap()->is_in(addr)) { - HeapWord* p = Universe::heap()->block_start(addr); + HeapWord* p = NULL; // Universe::heap()->block_start(addr); bool print = false; // If we couldn't find it it just may mean that heap wasn't parsable // See if we were just given an oop directly @@ -1083,8 +1083,14 @@ st->print_cr(INTPTR_FORMAT " is an oop", p2i(addr)); } else { st->print_cr(INTPTR_FORMAT " is pointing into object: " INTPTR_FORMAT, p2i(addr), p2i(p)); + } + if (*((juint*)p) == badHeapWordVal) { + st->print_cr(" Bad word"); + } else if (*((juint*)p) == badMetaWordVal) { + st->print_cr(" Bad meta word"); + } else { + oop(p)->print_on(st); } - oop(p)->print_on(st); return; } } else {