|
|
1.1 ! root 1: /* Copyright (c) 1982 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)printerror.c 1.3 2/11/82"; ! 4: ! 5: /* ! 6: * Print out an execution time error. ! 7: */ ! 8: ! 9: #include "defs.h" ! 10: #include <signal.h> ! 11: #include "machine.h" ! 12: #include "sym.h" ! 13: #include "process.h" ! 14: #include "source.h" ! 15: #include "object.h" ! 16: #include "mappings.h" ! 17: #include "pxerrors.h" ! 18: #include "process/process.rep" ! 19: ! 20: printerror() ! 21: { ! 22: register PROCESS *p; ! 23: char *filename; ! 24: int c; ! 25: ! 26: p = process; ! 27: if (p->signo != ESIGNAL && p->signo != SIGINT) { ! 28: error("signal %d at px pc %d, lc %d", p->signo, p->pc, pc); ! 29: } ! 30: curline = srcline(pc); ! 31: curfunc = whatblock(pc); ! 32: skimsource(srcfilename(pc)); ! 33: if (p->signo == ESIGNAL) { ! 34: printf("\nerror at "); ! 35: printwhere(curline, cursource); ! 36: if (errnum != 0) { ! 37: printf(": %s", pxerrmsg[errnum]); ! 38: } ! 39: } else { ! 40: printf("\n\ninterrupt at "); ! 41: printwhere(curline, cursource); ! 42: } ! 43: putchar('\n'); ! 44: printlines(curline, curline); ! 45: erecover(); ! 46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.