+
+ case MUT_ARR_PTRS_CLEAN:
+ debugBelch("MUT_ARR_PTRS_CLEAN(size=%lu)\n", (lnat)((StgMutArrPtrs *)obj)->ptrs);
+ break;
+
+ case MUT_ARR_PTRS_DIRTY:
+ debugBelch("MUT_ARR_PTRS_DIRTY(size=%lu)\n", (lnat)((StgMutArrPtrs *)obj)->ptrs);
+ break;
+
+ case MUT_ARR_PTRS_FROZEN:
+ debugBelch("MUT_ARR_PTRS_FROZEN(size=%lu)\n", (lnat)((StgMutArrPtrs *)obj)->ptrs);
+ break;
+
+ case MVAR:
+ {
+ StgMVar* mv = (StgMVar*)obj;
+ debugBelch("MVAR(head=%p, tail=%p, value=%p)\n", mv->head, mv->tail, mv->value);
+ break;
+ }
+
+ case MUT_VAR_CLEAN:
+ {
+ StgMutVar* mv = (StgMutVar*)obj;
+ debugBelch("MUT_VAR_CLEAN(var=%p)\n", mv->var);
+ break;
+ }
+
+ case MUT_VAR_DIRTY:
+ {
+ StgMutVar* mv = (StgMutVar*)obj;
+ debugBelch("MUT_VAR_DIRTY(var=%p)\n", mv->var);
+ break;
+ }
+
+ case WEAK:
+ debugBelch("WEAK(");
+ debugBelch(" key=%p value=%p finalizer=%p",
+ (StgPtr)(((StgWeak*)obj)->key),
+ (StgPtr)(((StgWeak*)obj)->value),
+ (StgPtr)(((StgWeak*)obj)->finalizer));
+ debugBelch(")\n");
+ /* ToDo: chase 'link' ? */
+ break;
+
+ case STABLE_NAME:
+ debugBelch("STABLE_NAME(%lu)\n", (lnat)((StgStableName*)obj)->sn);
+ break;
+
+ case TSO:
+ debugBelch("TSO(");
+ debugBelch("%d (%p)",((StgTSO*)obj)->id, (StgTSO*)obj);
+ debugBelch(")\n");
+ break;
+
+#if defined(PAR)
+ case BLOCKED_FETCH:
+ debugBelch("BLOCKED_FETCH(");
+ printGA(&(stgCast(StgBlockedFetch*,obj)->ga));
+ printPtr((StgPtr)(stgCast(StgBlockedFetch*,obj)->node));
+ debugBelch(")\n");
+ break;
+
+ case FETCH_ME:
+ debugBelch("FETCH_ME(");
+ printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
+ debugBelch(")\n");
+ break;
+
+ case FETCH_ME_BQ:
+ debugBelch("FETCH_ME_BQ(");
+ // printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
+ printPtr((StgPtr)stgCast(StgFetchMeBlockingQueue*,obj)->blocking_queue);
+ debugBelch(")\n");
+ break;
+#endif
+
+#if defined(GRAN) || defined(PAR)
+ case RBH:
+ debugBelch("RBH(");
+ printPtr((StgPtr)stgCast(StgRBH*,obj)->blocking_queue);
+ debugBelch(")\n");
+ break;
+
+#endif
+
+#if 0
+ /* Symptomatic of a problem elsewhere, have it fall-through & fail */
+ case EVACUATED:
+ debugBelch("EVACUATED(");
+ printClosure((StgEvacuated*)obj->evacuee);
+ debugBelch(")\n");
+ break;
+#endif
+
+#if defined(PAR) && defined(DIST)
+ case REMOTE_REF:
+ debugBelch("REMOTE_REF(");
+ printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
+ debugBelch(")\n");
+ break;
+#endif
+