summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Tennie <sven.tennie@gmail.com>2023-04-19 06:26:09 +0000
committerSven Tennie <sven.tennie@gmail.com>2023-05-05 19:59:53 +0000
commit62c74837b23be09283ed5a07f8efc3cfe13b47e1 (patch)
tree2074224be901b0673f9df8fb4d735c2f14cfb760
parent373f0f225ad44be098882e2eb4104b1b3bb31d68 (diff)
downloadhaskell-62c74837b23be09283ed5a07f8efc3cfe13b47e1.tar.gz
Printer: Add missing frame support
-rw-r--r--rts/Printer.c42
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: