1: #
2: /*
3: *
4: * UNIX debugger
5: *
6: */
7:
8: #include "defs.h"
9:
10:
11: MSG NOEOR;
12:
13: INT mkfault;
14: INT executing;
15: INT infile;
16: CHAR *lp;
17: INT maxoff;
18: INT maxpos;
19: INT sigint;
20: INT sigqit;
21: INT wtflag;
22: L_INT maxfile;
23: L_INT maxstor;
24: L_INT txtsiz;
25: L_INT datsiz;
26: L_INT datbas;
27: L_INT stksiz;
28: STRING errflg;
29: INT exitflg;
30: INT magic;
31: L_INT entrypt;
32:
33: CHAR lastc;
34: INT eof;
35:
36: INT lastcom;
37: L_INT var[36];
38: STRING symfil;
39: STRING corfil;
40: CHAR printbuf[];
41: CHAR *printptr;
42:
43:
44: L_INT round(a,b)
45: L_INT a, b;
46: {
47: L_INT w;
48: w = ((a+b-1)/b)*b;
49: return(w);
50: }
51:
52: /* error handling */
53:
54: chkerr()
55: {
56: IF errflg ORF mkfault
57: THEN error(errflg);
58: FI
59: }
60:
61: error(n)
62: STRING n;
63: {
64: errflg=n;
65: iclose(); oclose();
66: longjmp(erradb,1);
67: }
68:
69: fault(a)
70: {
71: signal(a,fault);
72: lseek(infile,0L,2);
73: mkfault++;
74: }
75:
76: /* set up files and initial address mappings */
77: INT argcount;
78:
79: main(argc, argv)
80: REG STRING *argv;
81: REG INT argc;
82: {
83: maxfile=1L<<24; maxstor=1L<<16;
84:
85: gtty(0,&adbtty);
86: gtty(0,&usrtty);
87: WHILE argc>1
88: DO IF eqstr("-w",argv[1])
89: THEN wtflag=2; argc--; argv++;
90: ELSE break;
91: FI
92: OD
93:
94: IF argc>1 THEN symfil = argv[1]; FI
95: IF argc>2 THEN corfil = argv[2]; FI
96: argcount=argc;
97: setsym(); setcor();
98:
99: /* set up variables for user */
100: maxoff=MAXOFF; maxpos=MAXPOS;
101: var[VARB] = datbas;
102: var[VARD] = datsiz;
103: var[VARE] = entrypt;
104: var[VARM] = magic;
105: var[VARS] = stksiz;
106: var[VART] = txtsiz;
107:
108: IF (sigint=signal(SIGINT,01))!=01
109: THEN sigint=fault; signal(SIGINT,fault);
110: FI
111: sigqit=signal(SIGQUIT,1);
112: setjmp(erradb);
113: IF executing THEN delbp(); FI
114: executing=FALSE;
115:
116: LOOP flushbuf();
117: IF errflg
118: THEN printf("%s\n",errflg);
119: exitflg=errflg;
120: errflg=0;
121: FI
122: IF mkfault
123: THEN mkfault=0; printc(EOR); prints(DBNAME);
124: FI
125: lp=0; rdc(); lp--;
126: IF eof
127: THEN IF infile
128: THEN iclose(); eof=0; longjmp(erradb,1);
129: ELSE done();
130: FI
131: ELSE exitflg=0;
132: FI
133: command(0,lastcom);
134: IF lp ANDF lastc!=EOR THEN error(NOEOR); FI
135: POOL
136: }
137:
138: done()
139: {
140: endpcs();
141: exit(exitflg);
142: }
Defined functions
done
defined in line
138; used 2 times
error
defined in line
61; used 38 times
- in line 57,
134
- in /usr/src/cmd/adb/access.c line
58,
72
- in /usr/src/cmd/adb/command.c line
112,
131,
151,
184,
209
- in /usr/src/cmd/adb/expr.c line
80,
110,
145,
153,
164,
206,
215-220(2),
292
- in /usr/src/cmd/adb/format.c line
66,
72,
110,
224,
246,
269
- in /usr/src/cmd/adb/input.c line
39
- in /usr/src/cmd/adb/pcs.c line
50,
65,
79,
87,
107-112(2)
- in /usr/src/cmd/adb/print.c line
121,
127,
240-244(2),
283
- in /usr/src/cmd/adb/runpcs.c line
111-116(2)
fault
defined in line
69; used 4 times
main
defined in line
79;
never used
round
defined in line
44; used 4 times