printerror() { register PROCESS *p; char *filename; int c; p = process; if (p->signo != ESIGNAL && p->signo != SIGINT) { error("signal %d at px pc %d, lc %d", p->signo, p->pc, pc); } curline = srcline(pc); curfunc = whatblock(pc); skimsource(srcfilename(pc)); if (p->signo == ESIGNAL) { printf("\nerror at "); printwhere(curline, cursource); if (errnum != 0) { printf(": %s", pxerrmsg[errnum]); } } else { printf("\n\ninterrupt at "); printwhere(curline, cursource); } putchar('\n'); printlines(curline, curline); erecover(); }
printnews() { if (ss_variables) { prvarnews(); } if (trcond()) { if (ss_lines && curline > 0) { skimsource(srcfilename(pc)); printf("trace: "); printlines(curline, curline); } if (ss_instructions) { printf("inst trace: "); printinst(pc, pc); } } bpact(); if (stopcond()) { isstopped = TRUE; curline = srcline(pc); printstatus(); } }