diff options
| author | Sven Tennie <sven.tennie@gmail.com> | 2023-04-19 06:26:09 +0000 |
|---|---|---|
| committer | Sven Tennie <sven.tennie@gmail.com> | 2023-05-05 19:59:53 +0000 |
| commit | 62c74837b23be09283ed5a07f8efc3cfe13b47e1 (patch) | |
| tree | 2074224be901b0673f9df8fb4d735c2f14cfb760 | |
| parent | 373f0f225ad44be098882e2eb4104b1b3bb31d68 (diff) | |
| download | haskell-62c74837b23be09283ed5a07f8efc3cfe13b47e1.tar.gz | |
Printer: Add missing frame support
| -rw-r--r-- | rts/Printer.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/rts/Printer.c b/rts/Printer.c index 7c6ef2ab3b..a040aefd6f 100644 --- a/rts/Printer.c +++ b/rts/Printer.c @@ -279,6 +279,45 @@ printClosure( const StgClosure *obj ) break; } + case CATCH_RETRY_FRAME: + { + StgCatchRetryFrame* frame = (StgCatchRetryFrame*)obj; + debugBelch("CATCH_RETRY_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)frame)); + debugBelch(","); + printPtr((StgPtr)frame->first_code); + debugBelch(","); + printPtr((StgPtr)frame->alt_code); + debugBelch(")\n"); + break; + } + + case CATCH_STM_FRAME: + { + StgCatchSTMFrame* frame = (StgCatchSTMFrame*)obj; + debugBelch("CATCH_STM_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)frame)); + debugBelch(","); + printPtr((StgPtr)frame->code); + debugBelch(","); + printPtr((StgPtr)frame->handler); + debugBelch(")\n"); + break; + } + + case ATOMICALLY_FRAME: + { + StgAtomicallyFrame* frame = (StgAtomicallyFrame*)obj; + debugBelch("ATOMICALLY_FRAME("); + printPtr((StgPtr)GET_INFO((StgClosure *)frame)); + debugBelch(","); + printPtr((StgPtr)frame->code); + debugBelch(","); + printPtr((StgPtr)frame->result); + debugBelch(")\n"); + break; + } + case UNDERFLOW_FRAME: { StgUnderflowFrame* u = (StgUnderflowFrame*)obj; @@ -579,6 +618,9 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) case UPDATE_FRAME: case CATCH_FRAME: + case CATCH_RETRY_FRAME: + case CATCH_STM_FRAME: + case ATOMICALLY_FRAME: case UNDERFLOW_FRAME: case STOP_FRAME: case ATOMICALLY_FRAME: |
