|
|
1.1 ! root 1: ! 2: #include <stdio.h> ! 3: #include <setjmp.h> ! 4: #include "sgtty.h" ! 5: #include <sys/vm.h> ! 6: #define PAGSIZ (CLSIZE*NBPG) ! 7: #include "bio.h" ! 8: #include "defs.h" ! 9: ! 10: /* input line decoding */ ! 11: char proc[30]; /* procedure name */ ! 12: int integ; /* count or number in input */ ! 13: char cmd; /* command letter */ ! 14: char re[128]; /* regular expression */ ! 15: char args[128]; /* arguments */ ! 16: char *argsp; /* pointer to args */ ! 17: char var[60]; /* variable name */ ! 18: int scallf; /* set to 1 iff procedure call */ ! 19: int reflag; /* set to 1 iff re */ ! 20: int redir; /* set to 1 iff forward search */ ! 21: int colonflag; /* set to 1 iff colon typed */ ! 22: ! 23: /* source file i/o */ ! 24: char curfile[30]; /* name of file being edited */ ! 25: int fline; /* line number in file */ ! 26: int maxfline; /* maximum line number in file, 0 if unknown */ ! 27: struct brbuf fiobuf; /* file descriptor */ ! 28: char fbuf[256]; /* current line from file */ ! 29: char filework[128]; /* place to put filename */ ! 30: char *fp; /* pointer to it */ ! 31: int nolines; /* set to 1 iff no lines in file */ ! 32: ! 33: /* returned by slookup */ ! 34: char sl_name[8]; ! 35: char sl_class; ! 36: short sl_type; ! 37: int sl_size, sl_addr; ! 38: int subflag; ! 39: ! 40: /* procedure call information */ ! 41: int scallx; /* procedure call in progress */ ! 42: ADDR fps, aps, pcs; /* old stack frame */ ! 43: BKPTR bkpts; /* old breakpoint */ ! 44: int flagss; /* and its flags */ ! 45: char dschar; /* '/' if value should be displayed */ ! 46: ! 47: /* symbol table info */ ! 48: long ststart; /* offset of symbol table in a.out */ ! 49: struct brbuf sbuf; /* buffer for symbol table */ ! 50: long extstart; /* offset of first external in a.out */ ! 51: ! 52: /* address info */ ! 53: ADDR dot; /* current address */ ! 54: ADDR callpc, frame, argp; /* current stack frame */ ! 55: ! 56: /* other */ ! 57: char odesc[10]; /* descriptor of last displayed variable */ ! 58: ADDR oaddr; /* address of last displayed variable */ ! 59: char otype; /* type of last displayed variable */ ! 60: char oclass; /* class of last displayed variable */ ! 61: char oincr; /* size of last displayed variable */ ! 62: struct sgttyb sdbttym, userttym; ! 63: /* tty modes for sdb and user */ ! 64: char oldargs[128]; ! 65: char prname[50]; /* print name used by outvar */ ! 66: jmp_buf env; /* environment for setjmp, longjmp */ ! 67: #define WINDOW 10 /* window size for display commands */ ! 68: #define COMMANDS "\004\"+-=!/BCDRSTabcdegklmpqrstwzVXY" ! 69: /* each sdb command must appear here */ ! 70: int debug; /* toggled by Y command */ ! 71: time_t symtime; /* modification time of symfil */ ! 72: ! 73: #define STABMASK 0376 ! 74: ! 75: #define NUMARGS 16 /* number of args allowed in sub call */ ! 76: #define SUBSTSP 512 /* length of space for sub args and strings */ ! 77: #define WORDSIZE 4 /* wordsize in bytes on this machine */ ! 78: ! 79: #define BIGNUM 0x7fffffff ! 80: #define MAXADDR 1L<<30 ! 81: ! 82: struct filet { ! 83: char sfilename[31]; /* source file name */ ! 84: char lineflag; /* set iff this is a '#line' file */ ! 85: ADDR faddr; /* address in core */ ! 86: long stf_offset; /* offset in a.out */ ! 87: } *files, *badfile; ! 88: ! 89: struct proct { ! 90: char pname[8]; /* procedure name */ ! 91: ADDR paddr; /* address in core */ ! 92: long st_offset; /* offset in a.out */ ! 93: struct filet *sfptr; /* source file name pointer */ ! 94: int lineno; /* line number in source file */ ! 95: char entrypt; /* 1 iff a F77 entry */ ! 96: } *procs, *badproc; ! 97: ! 98: ! 99: #define PROCINCR 20 ! 100: #define FILEINCR 10 ! 101: ! 102: #define varchar(x) ((x>='A' && x<='Z') || (x>='a' && x<='z') || x == '_' || x == '.' || x == '[' || x == ']' || x == '-' || x == '>' || x == '*' || x == '?') ! 103: #define number(x) (x >= '0' && x <= '9') ! 104: ! 105: char *readline(), readchar(), rdc(); ! 106: char *cpname(); ! 107: char *cpstr(), *cpall(); ! 108: char *sbrk(); ! 109: char *typetodesc(); ! 110: int octdigit(), decdigit(); hexdigit(); ! 111: int octconv(), decconv(); hexconv(); ! 112: long readint(), rint(); ! 113: long adrtostoffset(); ! 114: long getval(), argvalue(); ! 115: long slookup(), globallookup(); ! 116: ADDR varaddr(), dispvar(); ! 117: ADDR extaddr(), formaddr(), stackreg(); ! 118: struct proct *curproc(); ! 119: struct proct *findproc(); ! 120: struct proct *adrtoproc(); ! 121: struct proct *initframe(), *nextframe(); ! 122: struct filet *findfile(), *adrtofilep();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.