|
|
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.2 (Berkeley) 4/7/87"; ! 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: #ifdef tahoe ! 27: BOOLEAN shouldrestart; ! 28: #endif ! 29: ! 30: printerror() ! 31: { ! 32: register PROCESS *p; ! 33: ! 34: p = process; ! 35: if (p->signo != ESIGNAL && p->signo != SIGINT) { ! 36: error("signal %d at px pc %d, lc %d", p->signo, p->pc, pc); ! 37: } ! 38: curline = srcline(pc); ! 39: curfunc = whatblock(pc); ! 40: skimsource(srcfilename(pc)); ! 41: if (p->signo == ESIGNAL) { ! 42: printf("\nerror at "); ! 43: printwhere(curline, cursource); ! 44: putchar('\n'); ! 45: printlines(curline, curline); ! 46: #ifdef tahoe ! 47: /* ! 48: * this px is no good; it is easier to kill it and start ! 49: * a new one than to make it recover... ! 50: * make runtime/callproc.c know it too. ! 51: */ ! 52: shouldrestart = TRUE; ! 53: #endif ! 54: erecover(); ! 55: } else { ! 56: printf("\n\ninterrupt at "); ! 57: printwhere(curline, cursource); ! 58: putchar('\n'); ! 59: printlines(curline, curline); ! 60: erecover(); ! 61: } ! 62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.