< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp

Print this page




  50     os::print_hex_dump(&ss, start, end, 4);
  51     msg.append("\n");
  52     msg.append("Raw heap memory:\n%s", ss.as_string());
  53   }
  54 }
  55 
  56 void ShenandoahAsserts::print_obj(ShenandoahMessageBuffer& msg, oop obj) {
  57   ShenandoahHeap* heap = ShenandoahHeap::heap();
  58   ShenandoahHeapRegion *r = heap->heap_region_containing(obj);
  59 
  60   ResourceMark rm;
  61   stringStream ss;
  62   r->print_on(&ss);
  63 
  64   stringStream mw_ss;
  65   obj->mark().print_on(&mw_ss);
  66 
  67   ShenandoahMarkingContext* const ctx = heap->marking_context();
  68 
  69   msg.append("  " PTR_FORMAT " - klass " PTR_FORMAT " %s\n", p2i(obj), p2i(obj->klass()), obj->klass()->external_name());
  70   msg.append("    %3s allocated after mark start\n", ctx->allocated_after_mark_start(obj) ? "" : "not");
  71   msg.append("    %3s marked \n",                    ctx->is_marked(obj) ? "" : "not");
  72   msg.append("    %3s in collection set\n",          heap->in_collection_set(obj) ? "" : "not");
  73   if (heap->traversal_gc() != NULL) {
  74     msg.append("    %3s in traversal set\n",         heap->traversal_gc()->traversal_set()->is_in(cast_from_oop<HeapWord*>(obj)) ? "" : "not");
  75   }
  76   msg.append("  mark:%s\n", mw_ss.as_string());
  77   msg.append("  region: %s", ss.as_string());
  78 }
  79 
  80 void ShenandoahAsserts::print_non_obj(ShenandoahMessageBuffer& msg, void* loc) {
  81   ShenandoahHeap* heap = ShenandoahHeap::heap();
  82   if (heap->is_in(loc)) {
  83     msg.append("  inside Java heap\n");
  84     ShenandoahHeapRegion *r = heap->heap_region_containing(loc);
  85     stringStream ss;
  86     r->print_on(&ss);
  87 
  88     msg.append("    %3s in collection set\n",    heap->in_collection_set(loc) ? "" : "not");
  89     msg.append("  region: %s", ss.as_string());
  90   } else {




  50     os::print_hex_dump(&ss, start, end, 4);
  51     msg.append("\n");
  52     msg.append("Raw heap memory:\n%s", ss.as_string());
  53   }
  54 }
  55 
  56 void ShenandoahAsserts::print_obj(ShenandoahMessageBuffer& msg, oop obj) {
  57   ShenandoahHeap* heap = ShenandoahHeap::heap();
  58   ShenandoahHeapRegion *r = heap->heap_region_containing(obj);
  59 
  60   ResourceMark rm;
  61   stringStream ss;
  62   r->print_on(&ss);
  63 
  64   stringStream mw_ss;
  65   obj->mark().print_on(&mw_ss);
  66 
  67   ShenandoahMarkingContext* const ctx = heap->marking_context();
  68 
  69   msg.append("  " PTR_FORMAT " - klass " PTR_FORMAT " %s\n", p2i(obj), p2i(obj->klass()), obj->klass()->external_name());
  70   msg.append("    %3s allocated after mark start\n", ctx->allocated_after_mark_start(cast_from_oop<HeapWord*>(obj)) ? "" : "not");
  71   msg.append("    %3s marked \n",                    ctx->is_marked(obj) ? "" : "not");
  72   msg.append("    %3s in collection set\n",          heap->in_collection_set(obj) ? "" : "not");
  73   if (heap->traversal_gc() != NULL) {
  74     msg.append("    %3s in traversal set\n",         heap->traversal_gc()->traversal_set()->is_in(cast_from_oop<HeapWord*>(obj)) ? "" : "not");
  75   }
  76   msg.append("  mark:%s\n", mw_ss.as_string());
  77   msg.append("  region: %s", ss.as_string());
  78 }
  79 
  80 void ShenandoahAsserts::print_non_obj(ShenandoahMessageBuffer& msg, void* loc) {
  81   ShenandoahHeap* heap = ShenandoahHeap::heap();
  82   if (heap->is_in(loc)) {
  83     msg.append("  inside Java heap\n");
  84     ShenandoahHeapRegion *r = heap->heap_region_containing(loc);
  85     stringStream ss;
  86     r->print_on(&ss);
  87 
  88     msg.append("    %3s in collection set\n",    heap->in_collection_set(loc) ? "" : "not");
  89     msg.append("  region: %s", ss.as_string());
  90   } else {


< prev index next >