[project @ 2001-01-17 12:14:30 by simonmar]
[ghc-hetmet.git] / ghc / rts / Printer.c
index 32e0bc6..389dd80 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.27 2000/06/15 13:23:52 daan Exp $
+ * $Id: Printer.c,v 1.33 2001/01/15 16:55:25 sewardj Exp $
  *
  * (c) The GHC Team, 1994-2000.
  *
@@ -14,6 +14,8 @@
 
 #include "RtsUtils.h"
 #include "RtsFlags.h"
+#include "MBlock.h"
+#include "Storage.h"
 #include "Bytecodes.h"  /* for InstrPtr */
 #include "Disassembler.h"
 
@@ -93,10 +95,9 @@ void printClosure( StgClosure *obj )
     switch ( get_itbl(obj)->type ) {
     case INVALID_OBJECT:
             barf("Invalid object");
-#ifdef INTERPRETER
+#ifdef GHCI
     case BCO:
-            fprintf(stderr,"BCO\n");
-            disassemble(stgCast(StgBCO*,obj),"\t");
+            disassemble( (StgBCO*)obj );
             break;
 #endif
 
@@ -107,7 +108,7 @@ void printClosure( StgClosure *obj )
             fprintf(stderr,"AP_UPD("); printPtr((StgPtr)ap->fun);
             for (i = 0; i < ap->n_args; ++i) {
                 fprintf(stderr,", ");
-                printPtr(ap->payload[i]);
+                printPtr((P_)ap->payload[i]);
             }
             fprintf(stderr,")\n");
             break;
@@ -196,8 +197,7 @@ void printClosure( StgClosure *obj )
 
     case TSO:
       fprintf(stderr,"TSO("); 
-      fprintf(stderr,"%d (%x)", 
-              stgCast(StgTSO*,obj)->id, stgCast(StgTSO*,obj));
+      fprintf(stderr,"%d (%p)",((StgTSO*)obj)->id, (StgTSO*)obj);
       fprintf(stderr,")\n"); 
       break;
 
@@ -384,15 +384,19 @@ StgPtr printStackObj( StgPtr sp )
     } else {
         StgClosure* c = (StgClosure*)(*sp);
         printPtr((StgPtr)*sp);
-#ifdef INTERPRETER
-        if (c == &ret_bco_info) {
-           fprintf(stderr, "\t\t");
-           fprintf(stderr, "ret_bco_info\n" );
+#ifdef GHCI
+        if (c == (StgClosure*)&stg_ctoi_ret_R1p_info) {
+           fprintf(stderr, "\t\t\tstg_ctoi_ret_R1p_info\n" );
+       } else
+        if (c == (StgClosure*)&stg_ctoi_ret_R1n_info) {
+           fprintf(stderr, "\t\t\tstg_ctoi_ret_R1n_info\n" );
+       } else
+        if (c == (StgClosure*)&stg_ctoi_ret_F1_info) {
+           fprintf(stderr, "\t\t\tstg_ctoi_ret_F1_info\n" );
+       } else
+        if (c == (StgClosure*)&stg_ctoi_ret_D1_info) {
+           fprintf(stderr, "\t\t\tstg_ctoi_ret_D1_info\n" );
        } else
-        if (IS_HUGS_CONSTR_INFO(GET_INFO(c))) {
-           fprintf(stderr, "\t\t\t");
-           fprintf(stderr, "ConstrInfoTable\n" );
-        } else
 #endif
         if (get_itbl(c)->type == BCO) {
            fprintf(stderr, "\t\t\t");
@@ -938,6 +942,8 @@ extern void DEBUG_LoadSymbols( char *name STG_UNUSED )
 
 #include "StoragePriv.h"
 
+void findPtr(P_ p);            /* keep gcc -Wall happy */
+
 void
 findPtr(P_ p)
 {