Annotation of 42BSD/ucb/pascal/pdx/process/pstatus.c, revision 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.