Annotation of 42BSD/ucb/pascal/pdx/process/pstatus.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1982 Regents of the University of California */
                      2: 
                      3: static char sccsid[] = "@(#)pstatus.c 1.3 2/11/82";
                      4: 
                      5: /*
                      6:  * process status routines
                      7:  */
                      8: 
                      9: #include "defs.h"
                     10: #include <signal.h>
                     11: #include "process.h"
                     12: #include "machine.h"
                     13: #include "breakpoint.h"
                     14: #include "source.h"
                     15: #include "object.h"
                     16: #include "process.rep"
                     17: 
                     18: /*
                     19:  * Print the status of the process.
                     20:  * This routine does not return.
                     21:  */
                     22: 
                     23: printstatus()
                     24: {
                     25:     if (process->signo == SIGINT) {
                     26:        isstopped = TRUE;
                     27:        printerror();
                     28:     }
                     29:     if (isbperr() && isstopped) {
                     30:        skimsource(srcfilename(pc));
                     31:        printf("stopped at ");
                     32:        printwhere(curline, cursource);
                     33:        putchar('\n');
                     34:        if (curline > 0) {
                     35:            printlines(curline, curline);
                     36:        } else {
                     37:            printinst(pc, pc);
                     38:        }
                     39:        erecover();
                     40:     } else {
                     41:        isstopped = FALSE;
                     42:        fixbps();
                     43:        fixintr();
                     44:        if (process->status == FINISHED) {
                     45:            quit(0);
                     46:        } else {
                     47:            printerror();
                     48:        }
                     49:     }
                     50: }
                     51: 
                     52: 
                     53: /*
                     54:  * Print out the "line N [in file F]" information that accompanies
                     55:  * messages in various places.
                     56:  */
                     57: 
                     58: printwhere(lineno, filename)
                     59: LINENO lineno;
                     60: char *filename;
                     61: {
                     62:     if (lineno > 0) {
                     63:        printf("line %d", lineno);
                     64:        if (nlhdr.nfiles > 1) {
                     65:            printf(" in file %s", filename);
                     66:        }
                     67:     } else {
                     68: #      if (isvaxpx)
                     69:            printf("location %d\n", pc);
                     70: #      else
                     71:            printf("location 0x%x\n", pc);
                     72: #      endif
                     73:     }
                     74: }
                     75: 
                     76: /*
                     77:  * Return TRUE if the process is finished.
                     78:  */
                     79: 
                     80: BOOLEAN isfinished(p)
                     81: PROCESS *p;
                     82: {
                     83:     return(p->status == FINISHED);
                     84: }

unix.superglobalmegacorp.com

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