X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FPrinter.c;h=8290d220a0b0498373ec5ec47e4b370f2b09bcd4;hb=c56641e7752db313effe332b81f9e56275342fbd;hp=ca9b00890cc5b654f3cbc3a7b478d9ab8a88ea1d;hpb=31578e2242df87c362e1e976109dfcadf335df63;p=ghc-hetmet.git diff --git a/ghc/rts/Printer.c b/ghc/rts/Printer.c index ca9b008..8290d22 100644 --- a/ghc/rts/Printer.c +++ b/ghc/rts/Printer.c @@ -332,8 +332,12 @@ printClosure( StgClosure *obj ) break; } - case MUT_ARR_PTRS: - debugBelch("MUT_ARR_PTRS(size=%lu)\n", (lnat)((StgMutArrPtrs *)obj)->ptrs); + 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: @@ -347,10 +351,17 @@ printClosure( StgClosure *obj ) break; } - case MUT_VAR: + case MUT_VAR_CLEAN: { StgMutVar* mv = (StgMutVar*)obj; - debugBelch("MUT_VAR(var=%p)\n", mv->var); + 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; } @@ -529,10 +540,13 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) case UPDATE_FRAME: case CATCH_FRAME: - case STOP_FRAME: printObj((StgClosure*)sp); continue; + case STOP_FRAME: + printObj((StgClosure*)sp); + return; + case RET_DYN: { StgRetDyn* r; @@ -566,7 +580,7 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) case RET_SMALL: case RET_VEC_SMALL: - debugBelch("RET_SMALL (%p)\n", sp); + debugBelch("RET_SMALL (%p)\n", info); bitmap = info->layout.bitmap; printSmallBitmap(spBottom, sp+1, BITMAP_BITS(bitmap), BITMAP_SIZE(bitmap)); @@ -596,10 +610,10 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) ret_fun = (StgRetFun *)sp; fun_info = get_fun_itbl(ret_fun->fun); size = ret_fun->size; - debugBelch("RET_FUN (%p) (type=%d)\n", ret_fun, fun_info->f.fun_type); + debugBelch("RET_FUN (%p) (type=%d)\n", ret_fun->fun, fun_info->f.fun_type); switch (fun_info->f.fun_type) { case ARG_GEN: - printSmallBitmap(spBottom, sp+1, + printSmallBitmap(spBottom, sp+2, BITMAP_BITS(fun_info->f.b.bitmap), BITMAP_SIZE(fun_info->f.b.bitmap)); break; @@ -609,7 +623,7 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) GET_FUN_LARGE_BITMAP(fun_info)->size); break; default: - printSmallBitmap(spBottom, sp+1, + printSmallBitmap(spBottom, sp+2, BITMAP_BITS(stg_arg_bitmaps[fun_info->f.fun_type]), BITMAP_SIZE(stg_arg_bitmaps[fun_info->f.fun_type])); break; @@ -688,9 +702,11 @@ static char *closure_type_names[] = { "SE_CAF_BLACKHOLE", "MVAR", "ARR_WORDS", - "MUT_ARR_PTRS", + "MUT_ARR_PTRS_CLEAN", + "MUT_ARR_PTRS_DIRTY", "MUT_ARR_PTRS_FROZEN", - "MUT_VAR", + "MUT_VAR_CLEAN", + "MUT_VAR_DIRTY", "MUT_CONS", "WEAK", "FOREIGN",