|
|
1.1 ! root 1: .TH DDT68 1 MC68000 ! 2: .SU ! 3: .SH NAME ! 4: ddt68, fddt68 \- symbolic debugger for 68000 ! 5: .SH SYNOPSIS ! 6: .B fddt68 ! 7: b.out ! 8: .br ! 9: .B cc68 ... -lddt (Sun) ! 10: ! 11: .SH DESCRIPTION ! 12: .I fddt68 ! 13: is a symbolic disassembler for b.out files created by the 68000 linker ! 14: (ld68). Its main purpose is to allow testing of ddt logic in a ! 15: more hospitable environment than the 68000. It also gives a way of inspecting ! 16: the assembly language form of a program without having to produce a .s file. ! 17: In addition it gives a check on the operation of as68 and ld68. It is called ! 18: by typing: ! 19: .sp ! 20: fddt68 ! 21: .I filename ! 22: .sp ! 23: on the Vax. ! 24: .PP ! 25: .I ddt68 ! 26: is a symbolic debugger for the 68000. It is loaded at link edit time with ! 27: the cc68 flag -lddt. On starting a program with ddt loaded the user will be ! 28: at the ddt command level. Breakpoints may be set, and the program started, ! 29: using the commands described below. ! 30: .SH COMMANDS ! 31: .I ddt68 ! 32: recognizes the following commands (\fI$\fP is used for \fI<esc>\fP): ! 33: .TP ! 34: .IB expression / ! 35: .TP ! 36: .IB expression \e ! 37: open the location at \fIexpression\fP and display the contents in the ! 38: current typeout mode. The user may then optionally type an expression, whose ! 39: value replaces the contents of the open location. Finally the location is ! 40: \fIclosed\fP by typing one of \fIreturn\fP (to return to \fIddt\fP's main ! 41: command loop), \fI/\fP (to open the next location), or \fI\\\fP (to open the ! 42: previous location). ! 43: .TP ! 44: .IB expression $g ! 45: go - plant any breakpoints set with the \fI$b\fP command, load the registers, ! 46: and start execution at \fIexpression\fP. If \fIexpression\fP is unspecified ! 47: or zero, execution resumes starting from the current value of \fI$pc\fP ! 48: (normally the point where the program was last interrupted). ! 49: .TP ! 50: .IB expression $x ! 51: execute the next \fIexpression\fP instructions, starting from the current ! 52: value of \fI$pc\fP and printing out all executed instructions. If ! 53: \fIexpression\fP is omitted, 1 is assumed. ! 54: .TP ! 55: .IB expression $$x ! 56: same as above except execute subroutine calls and traps as single instructions, ! 57: i.e. do not descend into the called subroutine. ! 58: .TP ! 59: .IB expression $p ! 60: proceed - like \fIgo\fP with no argument, except that if we are presently at ! 61: a breakpoint then \fIexpression\fP counts the number of times to pass this ! 62: breakpoint before breaking. \fI1$p\fP is synonymous with \fI$g\fP. ! 63: .TP ! 64: .IB expression $ bno b ! 65: set breakpoint \fIbno\fP (in the range 1-9) at \fIexpression\fP. If \fIbno\fP ! 66: is omitted the first unused breakpoint number is assigned (the commonest ! 67: usage). If \fIexpression\fP is 0 the named breakpoint is cleared, or if there ! 68: is no named breakpoint (\fIbno\fP is omitted) all breakpoints are cleared. ! 69: If \fIexpression\fP is omitted all breakpoints are printed, whether or not ! 70: \fIbno\fP is present. ! 71: .TP ! 72: .BI $ rspec / ! 73: .TP ! 74: .BI $ rspec \e ! 75: examine register \fIrspec\fP where \fIrspec\fP is one of: ! 76: .RS ! 77: .TP ! 78: .B d0-d7 ! 79: data registers 0-7 ! 80: .TP ! 81: .B a0-a7 ! 82: address registers 0-7 ! 83: .TP ! 84: .B fp ! 85: frame pointer (synonym for \fIa6\fP) ! 86: .TP ! 87: .B sp ! 88: stack pointer (synonym for \fIa7\fP) ! 89: .TP ! 90: .B pc ! 91: program counter ! 92: .TP ! 93: .B sr ! 94: status register ! 95: .RE ! 96: .TP ! 97: .IB expression $= ! 98: type out \fIexpression\fP in current output radix. ! 99: .TP ! 100: .IB lowlimit < highlimit > pattern ? ! 101: search for \fIpattern\fP in the range \fIlowlimit\fP (inclusive) to ! 102: \fIhighlimit\fP (exclusive). ! 103: The pattern is interpreted as an object of the type in force as ! 104: the current typeout mode, with instructions and strings being treated as ! 105: 2-byte words. Objects are assumed to be aligned on word (2-byte) ! 106: boundaries except for 1-byte types and strings which are aligned on byte ! 107: boundaries. A mask (set with the following command) determines how much of ! 108: the pattern is ! 109: significant in the search, except that if the pattern is a string constant a ! 110: separate mask matched to the length of the string is used. ! 111: The three arguments to the search command are ! 112: sticky; thus if \fIlowlimit<\fP (resp. \fIhighlimit\fP>) is omitted, the ! 113: most recent lowlimit (resp. highlimit) applies. While \fIpattern\fP may be ! 114: omitted, the final ? may not be omitted. ! 115: .TP ! 116: .IB expression $m ! 117: set the search mask to \fIexpression\fP. \fI-1$m\fP forces a complete match, ! 118: \fIf$m\fP checks only the low order 4 bits, \fI0$m\fP will make the search ! 119: pattern match anything. ! 120: .TP ! 121: .IB base $ir ! 122: set input radix to \fIbase\fP. (Note \fI10$i\fP can never change the radix.) ! 123: If \fIbase\fP is omitted hexadecimal is assumed. ! 124: .TP ! 125: .IB base $or ! 126: set output radix to \fIbase\fP. ! 127: If \fIbase\fP is omitted hexadecimal is assumed. ! 128: .TP ! 129: .BI $ type t ! 130: temporarily set typeout mode to \fItype\fP where \fItype\fP is one of: ! 131: .RS ! 132: .TP ! 133: .B <space> ! 134: deduce type from type of nearest symbol ! 135: .TP ! 136: .B c ! 137: type out bytes as ascii characters. ! 138: .TP ! 139: .B h ! 140: type out bytes in current output radix. ! 141: .TP ! 142: .B w ! 143: type out words in current radix. ! 144: .TP ! 145: .B l ! 146: type out longs in current radix. ! 147: .TP ! 148: .B s ! 149: type out strings in current radix. (In this mode new values cannot be ! 150: entered.) ! 151: .TP ! 152: .B i ! 153: type out as 68000 symbolic instructions. (In this mode only the first ! 154: two bytes of the opened location may be changed; the new value is typed in as ! 155: a numeric expression rather than as a symbolic instruction.) ! 156: .RE ! 157: The new typeout mode stays in effect until a \fIreturn\fP is typed. ! 158: .TP ! 159: .BI $$ type t ! 160: permanently set typeout mode to \fItype\fP. ! 161: .PP ! 162: An \fIexpression\fP is composed of symbols, numeric constants, string ! 163: constants, and the operators \fI+\fP, ! 164: \fI-\fP, and \fI|\fP representing 2's complement addition, ! 165: subtraction, and inclusive bitwise or. ! 166: Symbols are delimited by operators or \fI<esc>\fP. A string constant has from ! 167: 1 to 4 characters which are packed right justified into one long to form a ! 168: numeric constant; thus "did"=646A64. String constants are particularly ! 169: useful in conjunction witht the search command for searching for a string. ! 170: The single character \fI.\fP (dot) as a symbol on its own represents ! 171: the address of the currently open memory location. ! 172: All operations are carried out using 32 bit arithmetic and evaluated ! 173: strictly left to right. ! 174: .SH AUTHORS ! 175: Jim Lawson and Vaughan Pratt
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.