diff options
author | Simon Marlow <simonmar@microsoft.com> | 2006-03-14 11:26:04 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2006-03-14 11:26:04 +0000 |
commit | c56641e7752db313effe332b81f9e56275342fbd (patch) | |
tree | 407fdd02b89f24cb9d018146a612691c42750882 /ghc/rts | |
parent | 960a5e6a6f604aa01f5f74b80fb0f61ceffd7ed3 (diff) | |
download | haskell-c56641e7752db313effe332b81f9e56275342fbd.tar.gz |
small improvements to the debug printer
Diffstat (limited to 'ghc/rts')
-rw-r--r-- | ghc/rts/Printer.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/ghc/rts/Printer.c b/ghc/rts/Printer.c index a9f087ba1e..8290d220a0 100644 --- a/ghc/rts/Printer.c +++ b/ghc/rts/Printer.c @@ -540,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; @@ -577,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)); @@ -607,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; @@ -620,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; |