< prev index next >

src/hotspot/share/runtime/os.cpp

Print this page
rev 50307 : [mq]: cont

@@ -1066,11 +1066,11 @@
     b->print_on(st);
     return;
   }
 
   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
     if (p != NULL && Universe::heap()->block_is_obj(p)) {
       print = true;

@@ -1082,11 +1082,17 @@
       if (p == (HeapWord*) addr) {
         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);
+      }
       return;
     }
   } else {
     if (Universe::heap()->is_in_reserved(addr)) {
       st->print_cr(INTPTR_FORMAT " is an unallocated location "
< prev index next >