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