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