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