RFR: Print mark word in asserts

Roman Kennke rkennke at redhat.com
Wed May 15 14:26:00 UTC 2019


Good!

Roman


> This is useful for debugging failures with nofwdptr patch. So this is destined to sh/jdk:
> 
> diff -r 50d6ac06b5a9 src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp     Tue May 14 20:16:20 2019 +0200
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp     Wed May 15 16:22:10 2019 +0200
> @@ -60,6 +60,9 @@
>    stringStream ss;
>    r->print_on(&ss);
> 
> +  stringStream mw_ss;
> +  obj->mark()->print_on(&mw_ss);
> +
>    ShenandoahMarkingContext* const ctx = heap->marking_context();
> 
>    msg.append("  " PTR_FORMAT " - klass " PTR_FORMAT " %s\n", p2i(obj), p2i(obj->klass()),
> obj->klass()->external_name());
> @@ -69,6 +72,7 @@
>    if (heap->traversal_gc() != NULL) {
>      msg.append("    %3s in traversal set\n",
> heap->traversal_gc()->traversal_set()->is_in((HeapWord*) obj) ? "" : "not");
>    }
> +  msg.append("  mark:%s\n", mw_ss.as_string());
>    msg.append("  region: %s", ss.as_string());
>  }
> 
> Testing: hotspot_gc_shenandoah, eyeballing failures
> 



More information about the shenandoah-dev mailing list