[project @ 2001-09-14 15:53:41 by sewardj]
[ghc-hetmet.git] / ghc / rts / Printer.c
index e8fb7f3..e64154d 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.39 2001/04/02 14:51:57 simonmar Exp $
+ * $Id: Printer.c,v 1.46 2001/08/21 10:12:02 sewardj Exp $
  *
  * (c) The GHC Team, 1994-2000.
  *
@@ -7,6 +7,7 @@
  * 
  * ---------------------------------------------------------------------------*/
 
+#include "PosixSource.h"
 #include "Rts.h"
 #include "Printer.h"
 
@@ -95,6 +96,13 @@ void printClosure( StgClosure *obj )
             disassemble( (StgBCO*)obj );
             break;
 
+    case MUT_VAR:
+        {
+         StgMutVar* mv = (StgMutVar*)obj;
+         fprintf(stderr,"MUT_VAR(var=%p, link=%p)\n", mv->var, mv->mut_link);
+          break;
+        }
+
     case AP_UPD:
         {
            StgAP_UPD* ap = stgCast(StgAP_UPD*,obj);
@@ -121,6 +129,12 @@ void printClosure( StgClosure *obj )
             break;
         }
 
+    case FOREIGN:
+            fprintf(stderr,"FOREIGN("); 
+            printPtr((StgPtr)( ((StgForeignObj*)obj)->data ));
+            fprintf(stderr,")\n"); 
+            break;
+
     case IND:
             fprintf(stderr,"IND("); 
             printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
@@ -287,7 +301,7 @@ void printClosure( StgClosure *obj )
                 putchar(arrWordsGetChar(obj,i));
                } */
            for (i=0; i<((StgArrWords *)obj)->words; i++)
-             fprintf(stderr, "%d", ((StgArrWords *)obj)->payload[i]);
+             fprintf(stderr, "%ld", ((StgArrWords *)obj)->payload[i]);
             fprintf(stderr,"\")\n");
             break;
         }
@@ -341,6 +355,7 @@ void printClosure( StgClosure *obj )
             //barf("printClosure %d",get_itbl(obj)->type);
             fprintf(stderr, "*** printClosure: unknown type %d ****\n",
                     get_itbl(obj)->type );
+            barf("printClosure %d",get_itbl(obj)->type);
             return;
     }
 }
@@ -399,7 +414,7 @@ StgPtr printStackObj( StgPtr sp )
 
 void printStackChunk( StgPtr sp, StgPtr spBottom )
 {
-    StgWord32 bitmap;
+    StgWord bitmap;
     const StgInfoTable *info;
 
     ASSERT(sp <= spBottom);
@@ -442,12 +457,12 @@ void printStackChunk( StgPtr sp, StgPtr spBottom )
          sp++;
        small_bitmap:
          while (bitmap != 0) {
-           fprintf(stderr,"   stk[%d] (%p) = ", spBottom-sp, sp);
+           fprintf(stderr,"   stk[%ld] (%p) = ", spBottom-sp, sp);
            if ((bitmap & 1) == 0) {
              printPtr((P_)*sp);
              fprintf(stderr,"\n");
            } else {
-             fprintf(stderr,"Word# %d\n", *sp++);
+             fprintf(stderr,"Word# %ld\n", *sp++);
            }         
            sp++;
            bitmap = bitmap >> 1;
@@ -462,7 +477,7 @@ void printStackChunk( StgPtr sp, StgPtr spBottom )
          break;
        }
       }
-      fprintf(stderr,"Stack[%d] (%p) = ", spBottom-sp, sp);
+      fprintf(stderr,"Stack[%ld] (%p) = ", spBottom-sp, sp);
       sp = printStackObj(sp);
     }
 }
@@ -818,7 +833,7 @@ static void printZcoded( const char *raw )
 /* Causing linking trouble on Win32 plats, so I'm
    disabling this for now. 
 */
-#if defined(HAVE_BFD_H) && !defined(_WIN32) && !defined(PAR) && !defined(GRAN)
+#ifdef USING_LIBBFD
 
 #include <bfd.h>
 
@@ -919,7 +934,7 @@ extern void DEBUG_LoadSymbols( char *name )
 
 extern void DEBUG_LoadSymbols( char *name STG_UNUSED )
 {
-(  /* nothing, yet */
+  /* nothing, yet */
 }
 
 #endif /* HAVE_BFD_H */
@@ -941,7 +956,7 @@ findPtr(P_ p, int follow)
   for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
       for (s = 0; s < generations[g].n_steps; s++) {
          if (RtsFlags.GcFlags.generations == 1) {
-             bd = generations[g].steps[s].to_space;
+             bd = generations[g].steps[s].to_blocks;
          } else {
              bd = generations[g].steps[s].blocks;
          }