Annotation of 43BSDReno/pgrm/pascal/pdx/machine/printerror.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.