[project @ 2001-08-14 13:40:07 by sewardj]
[ghc-hetmet.git] / ghc / rts / Printer.c
index ec4acdc..949ca86 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.40 2001/04/03 10:09:23 rrt Exp $
+ * $Id: Printer.c,v 1.45 2001/08/14 13:40:09 sewardj Exp $
  *
  * (c) The GHC Team, 1994-2000.
  *
@@ -7,6 +7,7 @@
  * 
  * ---------------------------------------------------------------------------*/
 
+#include "PosixSource.h"
 #include "Rts.h"
 #include "Printer.h"
 
@@ -121,6 +122,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 +294,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 +348,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 +407,7 @@ StgPtr printStackObj( StgPtr sp )
 
 void printStackChunk( StgPtr sp, StgPtr spBottom )
 {
-    StgWord32 bitmap;
+    StgWord bitmap;
     const StgInfoTable *info;
 
     ASSERT(sp <= spBottom);
@@ -442,12 +450,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 +470,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 +826,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>
 
@@ -941,7 +949,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;
          }