Print to stdout instead of stderr. I'm pretty ambivalent about this,
but Sungwoo Park made the changes as part of his retainer profiling
work so he must have had a good reason for it at the time...
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.47 2001/10/02 15:27:15 sewardj Exp $
+ * $Id: Printer.c,v 1.48 2001/11/20 16:17:23 simonmar Exp $
*
* (c) The GHC Team, 1994-2000.
*
*
* (c) The GHC Team, 1994-2000.
*
if (lookupGHCName( p, &raw )) {
printZcoded(raw);
} else {
if (lookupGHCName( p, &raw )) {
printZcoded(raw);
} else {
- fprintf(stderr, "%p", p);
+ fprintf(stdout, "%p", p);
}
}
void printObj( StgClosure *obj )
{
}
}
void printObj( StgClosure *obj )
{
- fprintf(stderr,"Object "); printPtr((StgPtr)obj); fprintf(stderr," = ");
+ fprintf(stdout,"Object "); printPtr((StgPtr)obj); fprintf(stdout," = ");
{
StgWord i, j;
const StgInfoTable* info = get_itbl(obj);
{
StgWord i, j;
const StgInfoTable* info = get_itbl(obj);
- fprintf(stderr,"%s(",tag);
+ fprintf(stdout,"%s(",tag);
printPtr((StgPtr)obj->header.info);
#ifdef PROFILING
printPtr((StgPtr)obj->header.info);
#ifdef PROFILING
- fprintf(stderr,", %s", obj->header.prof.ccs->cc->label);
+ fprintf(stdout,", %s", obj->header.prof.ccs->cc->label);
#endif
for (i = 0; i < info->layout.payload.ptrs; ++i) {
#endif
for (i = 0; i < info->layout.payload.ptrs; ++i) {
printPtr((StgPtr)obj->payload[i]);
}
for (j = 0; j < info->layout.payload.nptrs; ++j) {
printPtr((StgPtr)obj->payload[i]);
}
for (j = 0; j < info->layout.payload.nptrs; ++j) {
- fprintf(stderr,", %pd#",obj->payload[i+j]);
+ fprintf(stdout,", %pd#",obj->payload[i+j]);
}
void printClosure( StgClosure *obj )
}
void printClosure( StgClosure *obj )
{
StgAP_UPD* ap = stgCast(StgAP_UPD*,obj);
StgWord i;
{
StgAP_UPD* ap = stgCast(StgAP_UPD*,obj);
StgWord i;
- fprintf(stderr,"AP_UPD("); printPtr((StgPtr)ap->fun);
+ fprintf(stdout,"AP_UPD("); printPtr((StgPtr)ap->fun);
for (i = 0; i < ap->n_args; ++i) {
for (i = 0; i < ap->n_args; ++i) {
printPtr((P_)ap->payload[i]);
}
printPtr((P_)ap->payload[i]);
}
{
StgPAP* pap = stgCast(StgPAP*,obj);
StgWord i;
{
StgPAP* pap = stgCast(StgPAP*,obj);
StgWord i;
- fprintf(stderr,"PAP("); printPtr((StgPtr)pap->fun);
+ fprintf(stdout,"PAP("); printPtr((StgPtr)pap->fun);
for (i = 0; i < pap->n_args; ++i) {
for (i = 0; i < pap->n_args; ++i) {
printPtr((StgPtr)pap->payload[i]);
}
printPtr((StgPtr)pap->payload[i]);
}
- fprintf(stderr,"IND(");
+ fprintf(stdout,"IND(");
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
- fprintf(stderr,"IND_STATIC(");
+ fprintf(stdout,"IND_STATIC(");
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
- fprintf(stderr,"IND_OLDGEN(");
+ fprintf(stdout,"IND_OLDGEN(");
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
break;
case CAF_BLACKHOLE:
break;
case CAF_BLACKHOLE:
- fprintf(stderr,"CAF_BH(");
+ fprintf(stdout,"CAF_BH(");
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
break;
case SE_BLACKHOLE:
break;
case SE_BLACKHOLE:
- fprintf(stderr,"SE_BH\n");
+ fprintf(stdout,"SE_BH\n");
break;
case SE_CAF_BLACKHOLE:
break;
case SE_CAF_BLACKHOLE:
- fprintf(stderr,"SE_CAF_BH\n");
+ fprintf(stdout,"SE_CAF_BH\n");
- fprintf(stderr,"BH\n");
+ fprintf(stdout,"BH\n");
break;
case BLACKHOLE_BQ:
break;
case BLACKHOLE_BQ:
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
- fprintf(stderr,"TSO(");
- fprintf(stderr,"%d (%p)",((StgTSO*)obj)->id, (StgTSO*)obj);
- fprintf(stderr,")\n");
+ fprintf(stdout,"TSO(");
+ fprintf(stdout,"%d (%p)",((StgTSO*)obj)->id, (StgTSO*)obj);
+ fprintf(stdout,")\n");
break;
#if defined(PAR)
case BLOCKED_FETCH:
break;
#if defined(PAR)
case BLOCKED_FETCH:
- fprintf(stderr,"BLOCKED_FETCH(");
+ fprintf(stdout,"BLOCKED_FETCH(");
printGA(&(stgCast(StgBlockedFetch*,obj)->ga));
printPtr((StgPtr)(stgCast(StgBlockedFetch*,obj)->node));
printGA(&(stgCast(StgBlockedFetch*,obj)->ga));
printPtr((StgPtr)(stgCast(StgBlockedFetch*,obj)->node));
- fprintf(stderr,"FETCH_ME(");
+ fprintf(stdout,"FETCH_ME(");
printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
break;
#ifdef DIST
case REMOTE_REF:
break;
#ifdef DIST
case REMOTE_REF:
- fprintf(stderr,"REMOTE_REF(");
+ fprintf(stdout,"REMOTE_REF(");
printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
break;
#endif
case FETCH_ME_BQ:
break;
#endif
case FETCH_ME_BQ:
- fprintf(stderr,"FETCH_ME_BQ(");
+ fprintf(stdout,"FETCH_ME_BQ(");
// printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
printPtr((StgPtr)stgCast(StgFetchMeBlockingQueue*,obj)->blocking_queue);
// printGA((globalAddr *)stgCast(StgFetchMe*,obj)->ga);
printPtr((StgPtr)stgCast(StgFetchMeBlockingQueue*,obj)->blocking_queue);
break;
#endif
#if defined(GRAN) || defined(PAR)
case RBH:
break;
#endif
#if defined(GRAN) || defined(PAR)
case RBH:
- fprintf(stderr,"RBH(");
+ fprintf(stdout,"RBH(");
printPtr((StgPtr)stgCast(StgRBH*,obj)->blocking_queue);
printPtr((StgPtr)stgCast(StgRBH*,obj)->blocking_queue);
*/
StgWord i, j;
#ifdef PROFILING
*/
StgWord i, j;
#ifdef PROFILING
- fprintf(stderr,"%s(", info->prof.closure_desc);
- fprintf(stderr,"%s", obj->header.prof.ccs->cc->label);
+ fprintf(stdout,"%s(", info->prof.closure_desc);
+ fprintf(stdout,"%s", obj->header.prof.ccs->cc->label);
- fprintf(stderr,"CONSTR(");
+ fprintf(stdout,"CONSTR(");
printPtr((StgPtr)obj->header.info);
printPtr((StgPtr)obj->header.info);
- fprintf(stderr,"(tag=%d)",info->srt_len);
+ fprintf(stdout,"(tag=%d)",info->srt_len);
#endif
for (i = 0; i < info->layout.payload.ptrs; ++i) {
#endif
for (i = 0; i < info->layout.payload.ptrs; ++i) {
printPtr((StgPtr)obj->payload[i]);
}
for (j = 0; j < info->layout.payload.nptrs; ++j) {
printPtr((StgPtr)obj->payload[i]);
}
for (j = 0; j < info->layout.payload.nptrs; ++j) {
- fprintf(stderr,", %p#", obj->payload[i+j]);
+ fprintf(stdout,", %p#", obj->payload[i+j]);
StgWord i;
StgMutArrPtrs* p = stgCast(StgMutArrPtrs*,obj);
StgWord i;
StgMutArrPtrs* p = stgCast(StgMutArrPtrs*,obj);
- fprintf(stderr,"Row<%i>(",p->ptrs);
+ fprintf(stdout,"Row<%i>(",p->ptrs);
for (i = 0; i < p->ptrs; ++i) {
for (i = 0; i < p->ptrs; ++i) {
- if (i > 0) fprintf(stderr,", ");
+ if (i > 0) fprintf(stdout,", ");
printPtr((StgPtr)(p->payload[i]));
}
printPtr((StgPtr)(p->payload[i]));
}
case ARR_WORDS:
{
StgWord i;
case ARR_WORDS:
{
StgWord i;
- fprintf(stderr,"ARR_WORDS(\"");
+ fprintf(stdout,"ARR_WORDS(\"");
/* ToDo: we can't safely assume that this is a string!
for (i = 0; arrWordsGetChar(obj,i); ++i) {
putchar(arrWordsGetChar(obj,i));
/* ToDo: we can't safely assume that this is a string!
for (i = 0; arrWordsGetChar(obj,i); ++i) {
putchar(arrWordsGetChar(obj,i));
case UPDATE_FRAME:
{
StgUpdateFrame* u = stgCast(StgUpdateFrame*,obj);
case UPDATE_FRAME:
{
StgUpdateFrame* u = stgCast(StgUpdateFrame*,obj);
- fprintf(stderr,"UpdateFrame(");
+ fprintf(stdout,"UpdateFrame(");
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)u->updatee);
printPtr((StgPtr)u->updatee);
printPtr((StgPtr)u->link);
printPtr((StgPtr)u->link);
break;
}
case CATCH_FRAME:
{
StgCatchFrame* u = stgCast(StgCatchFrame*,obj);
break;
}
case CATCH_FRAME:
{
StgCatchFrame* u = stgCast(StgCatchFrame*,obj);
- fprintf(stderr,"CatchFrame(");
+ fprintf(stdout,"CatchFrame(");
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)u->handler);
printPtr((StgPtr)u->handler);
printPtr((StgPtr)u->link);
printPtr((StgPtr)u->link);
break;
}
case SEQ_FRAME:
{
StgSeqFrame* u = stgCast(StgSeqFrame*,obj);
break;
}
case SEQ_FRAME:
{
StgSeqFrame* u = stgCast(StgSeqFrame*,obj);
- fprintf(stderr,"SeqFrame(");
+ fprintf(stdout,"SeqFrame(");
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)u->link);
printPtr((StgPtr)u->link);
break;
}
case STOP_FRAME:
{
StgStopFrame* u = stgCast(StgStopFrame*,obj);
break;
}
case STOP_FRAME:
{
StgStopFrame* u = stgCast(StgStopFrame*,obj);
- fprintf(stderr,"StopFrame(");
+ fprintf(stdout,"StopFrame(");
printPtr((StgPtr)GET_INFO(u));
printPtr((StgPtr)GET_INFO(u));
break;
}
default:
//barf("printClosure %d",get_itbl(obj)->type);
break;
}
default:
//barf("printClosure %d",get_itbl(obj)->type);
- fprintf(stderr, "*** printClosure: unknown type %d ****\n",
+ fprintf(stdout, "*** printClosure: unknown type %d ****\n",
get_itbl(obj)->type );
barf("printClosure %d",get_itbl(obj)->type);
return;
get_itbl(obj)->type );
barf("printClosure %d",get_itbl(obj)->type);
return;
StgPtr printStackObj( StgPtr sp )
{
StgPtr printStackObj( StgPtr sp )
{
- /*fprintf(stderr,"Stack[%d] = ", &stgStack[STACK_SIZE] - sp); */
+ /*fprintf(stdout,"Stack[%d] = ", &stgStack[STACK_SIZE] - sp); */
if (IS_ARG_TAG(*sp)) {
nat i;
StgWord tag = *sp++;
if (IS_ARG_TAG(*sp)) {
nat i;
StgWord tag = *sp++;
- fprintf(stderr,"Tagged{");
+ fprintf(stdout,"Tagged{");
for (i = 0; i < tag; i++) {
for (i = 0; i < tag; i++) {
- fprintf(stderr,"0x%x#", (unsigned)(*sp++));
- if (i < tag-1) fprintf(stderr, ", ");
+ fprintf(stdout,"0x%x#", (unsigned)(*sp++));
+ if (i < tag-1) fprintf(stdout, ", ");
- fprintf(stderr, "}\n");
+ fprintf(stdout, "}\n");
} else {
StgClosure* c = (StgClosure*)(*sp);
printPtr((StgPtr)*sp);
if (c == (StgClosure*)&stg_ctoi_ret_R1p_info) {
} else {
StgClosure* c = (StgClosure*)(*sp);
printPtr((StgPtr)*sp);
if (c == (StgClosure*)&stg_ctoi_ret_R1p_info) {
- fprintf(stderr, "\t\t\tstg_ctoi_ret_R1p_info\n" );
+ fprintf(stdout, "\t\t\tstg_ctoi_ret_R1p_info\n" );
} else
if (c == (StgClosure*)&stg_ctoi_ret_R1n_info) {
} else
if (c == (StgClosure*)&stg_ctoi_ret_R1n_info) {
- fprintf(stderr, "\t\t\tstg_ctoi_ret_R1n_info\n" );
+ fprintf(stdout, "\t\t\tstg_ctoi_ret_R1n_info\n" );
} else
if (c == (StgClosure*)&stg_ctoi_ret_F1_info) {
} else
if (c == (StgClosure*)&stg_ctoi_ret_F1_info) {
- fprintf(stderr, "\t\t\tstg_ctoi_ret_F1_info\n" );
+ fprintf(stdout, "\t\t\tstg_ctoi_ret_F1_info\n" );
} else
if (c == (StgClosure*)&stg_ctoi_ret_D1_info) {
} else
if (c == (StgClosure*)&stg_ctoi_ret_D1_info) {
- fprintf(stderr, "\t\t\tstg_ctoi_ret_D1_info\n" );
+ fprintf(stdout, "\t\t\tstg_ctoi_ret_D1_info\n" );
} else
if (c == (StgClosure*)&stg_ctoi_ret_V_info) {
} else
if (c == (StgClosure*)&stg_ctoi_ret_V_info) {
- fprintf(stderr, "\t\t\tstg_ctoi_ret_V_info\n" );
+ fprintf(stdout, "\t\t\tstg_ctoi_ret_V_info\n" );
} else
if (get_itbl(c)->type == BCO) {
} else
if (get_itbl(c)->type == BCO) {
- fprintf(stderr, "\t\t\t");
- fprintf(stderr, "BCO(...)\n");
+ fprintf(stdout, "\t\t\t");
+ fprintf(stdout, "BCO(...)\n");
- fprintf(stderr, "\t\t\t");
+ fprintf(stdout, "\t\t\t");
printClosure ( (StgClosure*)(*sp));
}
sp += 1;
printClosure ( (StgClosure*)(*sp));
}
sp += 1;
- fprintf(stderr, "RET_DYN (%p)\n", sp);
+ fprintf(stdout, "RET_DYN (%p)\n", sp);
- fprintf(stderr, "Bitmap: 0x%x\n", bitmap);
+ fprintf(stdout, "Bitmap: 0x%x\n", bitmap);
goto small_bitmap;
case RET_SMALL:
case RET_VEC_SMALL:
goto small_bitmap;
case RET_SMALL:
case RET_VEC_SMALL:
- fprintf(stderr, "RET_SMALL (%p)\n", sp);
+ fprintf(stdout, "RET_SMALL (%p)\n", sp);
bitmap = info->layout.bitmap;
sp++;
small_bitmap:
bitmap = info->layout.bitmap;
sp++;
small_bitmap:
fprintf(stderr," stk[%ld] (%p) = ", spBottom-sp, sp);
if ((bitmap & 1) == 0) {
printPtr((P_)*sp);
fprintf(stderr," stk[%ld] (%p) = ", spBottom-sp, sp);
if ((bitmap & 1) == 0) {
printPtr((P_)*sp);
} else {
fprintf(stderr,"Word# %ld\n", *sp);
}
} else {
fprintf(stderr,"Word# %ld\n", *sp);
}
while ( raw[j] != '\0' ) {
if (raw[j] == 'Z') {
while ( raw[j] != '\0' ) {
if (raw[j] == 'Z') {
- fputc(unZcode(raw[j+1]),stderr);
+ fputc(unZcode(raw[j+1]),stdout);
for( i = 0; i != number_of_symbols; ++i ) {
symbol_info info;
bfd_get_symbol_info(abfd,symbol_table[i],&info);
for( i = 0; i != number_of_symbols; ++i ) {
symbol_info info;
bfd_get_symbol_info(abfd,symbol_table[i],&info);
- /*fprintf(stderr,"\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name); */
+ /*fprintf(stdout,"\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name); */
if (isReal(info.type, info.name)) {
num_real_syms += 1;
}
}
IF_DEBUG(evaluator,
if (isReal(info.type, info.name)) {
num_real_syms += 1;
}
}
IF_DEBUG(evaluator,
- fprintf(stderr,"Loaded %ld symbols. Of which %ld are real symbols\n",
+ fprintf(stdout,"Loaded %ld symbols. Of which %ld are real symbols\n",
number_of_symbols, num_real_syms)
);
number_of_symbols, num_real_syms)
);
if (i < arr_size) {
r = q;
while (!LOOKS_LIKE_GHC_INFO(*r)) { r--; };
if (i < arr_size) {
r = q;
while (!LOOKS_LIKE_GHC_INFO(*r)) { r--; };
- fprintf(stderr, "%p = ", r);
+ fprintf(stdout, "%p = ", r);
printClosure((StgClosure *)r);
arr[i++] = r;
} else {
printClosure((StgClosure *)r);
arr[i++] = r;
} else {
}
}
if (follow && i == 1) {
}
}
if (follow && i == 1) {
- fprintf(stderr, "-->\n");
+ fprintf(stdout, "-->\n");
#else /* DEBUG */
void printPtr( StgPtr p )
{
#else /* DEBUG */
void printPtr( StgPtr p )
{
- fprintf(stderr, "ptr 0x%p (enable -DDEBUG for more info) " , p );
+ fprintf(stdout, "ptr 0x%p (enable -DDEBUG for more info) " , p );
}
void printObj( StgClosure *obj )
{
}
void printObj( StgClosure *obj )
{
- fprintf(stderr, "obj 0x%p (enable -DDEBUG for more info) " , obj );
+ fprintf(stdout, "obj 0x%p (enable -DDEBUG for more info) " , obj );