/* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.24 2000/04/12 09:37:19 sewardj Exp $
+ * $Id: Printer.c,v 1.33 2001/01/15 16:55:25 sewardj Exp $
*
* (c) The GHC Team, 1994-2000.
*
#include "RtsUtils.h"
#include "RtsFlags.h"
+#include "MBlock.h"
+#include "Storage.h"
#include "Bytecodes.h" /* for InstrPtr */
#include "Disassembler.h"
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
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;
fprintf(stderr,", ");
printPtr((StgPtr)caf->value); /* should be null */
fprintf(stderr,", ");
- printPtr((StgPtr)caf->link); /* should be null */
+ printPtr((StgPtr)caf->link);
fprintf(stderr,")\n");
break;
}
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;
break;
}
+#ifdef XMLAMBDA
+/* rows are mutarrays in xmlambda, maybe we should make a new type: ROW */
+ case MUT_ARR_PTRS_FROZEN:
+ {
+ StgWord i;
+ StgMutArrPtrs* p = stgCast(StgMutArrPtrs*,obj);
+
+ fprintf(stderr,"Row<%i>(",p->ptrs);
+ for (i = 0; i < p->ptrs; ++i) {
+ if (i > 0) fprintf(stderr,", ");
+ printPtr((StgPtr)(p->payload[i]));
+ }
+ fprintf(stderr,")\n");
+ break;
+ }
+#endif
+
case FUN:
case FUN_1_0: case FUN_0_1:
case FUN_1_1: case FUN_0_2: case FUN_2_0:
} 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");
/* Causing linking trouble on Win32 plats, so I'm
disabling this for now.
*/
-/* For now, BFD support is unconditionally disabled -- HWL */
-#if 0 /* HWL */ && defined(HAVE_BFD_H) && !defined(_WIN32)
+#if defined(HAVE_BFD_H) && !defined(_WIN32)
#include <bfd.h>
#include "StoragePriv.h"
+void findPtr(P_ p); /* keep gcc -Wall happy */
+
void
findPtr(P_ p)
{