projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
small improvements to the debug printer
[ghc-hetmet.git]
/
ghc
/
rts
/
Printer.c
diff --git
a/ghc/rts/Printer.c
b/ghc/rts/Printer.c
index
ca9b008
..
8290d22
100644
(file)
--- a/
ghc/rts/Printer.c
+++ b/
ghc/rts/Printer.c
@@
-332,8
+332,12
@@
printClosure( StgClosure *obj )
break;
}
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:
break;
case MUT_ARR_PTRS_FROZEN:
@@
-347,10
+351,17
@@
printClosure( StgClosure *obj )
break;
}
break;
}
- case MUT_VAR:
+ case MUT_VAR_CLEAN:
{
StgMutVar* mv = (StgMutVar*)obj;
{
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;
}
break;
}
@@
-529,10
+540,13
@@
printStackChunk( StgPtr sp, StgPtr spBottom )
case UPDATE_FRAME:
case CATCH_FRAME:
case UPDATE_FRAME:
case CATCH_FRAME:
- case STOP_FRAME:
printObj((StgClosure*)sp);
continue;
printObj((StgClosure*)sp);
continue;
+ case STOP_FRAME:
+ printObj((StgClosure*)sp);
+ return;
+
case RET_DYN:
{
StgRetDyn* r;
case RET_DYN:
{
StgRetDyn* r;
@@
-566,7
+580,7
@@
printStackChunk( StgPtr sp, StgPtr spBottom )
case RET_SMALL:
case RET_VEC_SMALL:
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));
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;
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:
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;
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:
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;
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",
"SE_CAF_BLACKHOLE",
"MVAR",
"ARR_WORDS",
- "MUT_ARR_PTRS",
+ "MUT_ARR_PTRS_CLEAN",
+ "MUT_ARR_PTRS_DIRTY",
"MUT_ARR_PTRS_FROZEN",
"MUT_ARR_PTRS_FROZEN",
- "MUT_VAR",
+ "MUT_VAR_CLEAN",
+ "MUT_VAR_DIRTY",
"MUT_CONS",
"WEAK",
"FOREIGN",
"MUT_CONS",
"WEAK",
"FOREIGN",