diff options
Diffstat (limited to 'rts/Printer.c')
-rw-r--r-- | rts/Printer.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/rts/Printer.c b/rts/Printer.c index ccd82be877..e2dee0984e 100644 --- a/rts/Printer.c +++ b/rts/Printer.c @@ -297,6 +297,45 @@ printClosure( const StgClosure *obj ) break; } + case ATOMICALLY_FRAME: + { + StgAtomicallyFrame* u = (StgAtomicallyFrame*)obj; + debugBelch("ATOMICALLY_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)u)); + debugBelch(","); + printPtr((StgPtr)u->code); + debugBelch(","); + printPtr((StgPtr)u->result); + debugBelch(")\n"); + break; + } + + case CATCH_RETRY_FRAME: + { + StgCatchRetryFrame* u = (StgCatchRetryFrame*)obj; + debugBelch("CATCH_RETRY_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)u)); + debugBelch(","); + printPtr((StgPtr)u->first_code); + debugBelch(","); + printPtr((StgPtr)u->alt_code); + debugBelch(")\n"); + break; + } + + case CATCH_STM_FRAME: + { + StgCatchSTMFrame* u = (StgCatchSTMFrame*)obj; + debugBelch("CATCH_STM_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)u)); + debugBelch(","); + printPtr((StgPtr)u->code); + debugBelch(","); + printPtr((StgPtr)u->handler); + debugBelch(")\n"); + break; + } + case ARR_WORDS: { StgWord i; @@ -319,6 +358,10 @@ printClosure( const StgClosure *obj ) debugBelch("MUT_ARR_PTRS_FROZEN_CLEAN(size=%" FMT_Word ")\n", (W_)((StgMutArrPtrs *)obj)->ptrs); break; + case MUT_ARR_PTRS_FROZEN_DIRTY: + debugBelch("MUT_ARR_PTRS_FROZEN_DIRTY(size=%" FMT_Word ")\n", (W_)((StgMutArrPtrs *)obj)->ptrs); + break; + case SMALL_MUT_ARR_PTRS_CLEAN: debugBelch("SMALL_MUT_ARR_PTRS_CLEAN(size=%" FMT_Word ")\n", (W_)((StgSmallMutArrPtrs *)obj)->ptrs); @@ -334,6 +377,11 @@ printClosure( const StgClosure *obj ) (W_)((StgSmallMutArrPtrs *)obj)->ptrs); break; + case SMALL_MUT_ARR_PTRS_FROZEN_DIRTY: + debugBelch("SMALL_MUT_ARR_PTRS_FROZEN_DIRTY(size=%" FMT_Word ")\n", + (W_)((StgSmallMutArrPtrs *)obj)->ptrs); + break; + case MVAR_CLEAN: case MVAR_DIRTY: { @@ -533,6 +581,9 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) case CATCH_FRAME: case UNDERFLOW_FRAME: case STOP_FRAME: + case ATOMICALLY_FRAME: + case CATCH_RETRY_FRAME: + case CATCH_STM_FRAME: printClosure((StgClosure*)sp); continue; |