|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.