1 ODT The On-Line Debugging Tool (ODT) is an interactive debugging aid that is added to a task by the Task Builder /DA (debugging aid) switch. Among its capabilities, ODT allows the setting of breakpoints and the opening, display (in various formats), and modification of task locations. For a complete explanation of ODT terminology (what are relocation registers and breakpoints) and capabilities, see the IAS/RSX-11 ODT Reference Manual. For information about addressing and open location displays, type AID ODT DISPLAYS For information about ODT's internal registers, type AID ODT REGISTERS For information about ODT's commands, type AID ODT COMMANDS 2 DISPLAYS An address is opened by typing an address expression followed by one of the following format commands: / Word mode octal \ Byte mode octal " Word mode ASCII ' Byte mode ASCII % Word mode Radix-50 An address expression has the general form [r,]k[c] where r is the number of a relocation register, k is an address, and c is a constant. _0,123+20/ 001433 Once a location is open, it can be be displayed in another format or closed by one of the following commands. If an octal number precedes one of the following commands, that number replaces the contents of the open location. "" Close open location and give ODT prompt "" Open next sequential location "^" Open preceding location "@" Use contents of open location as address of next location. "_" Use contents of open location as PC relative offset and open the target location 2 REGISTERS User register n is opened by typing $n/ ODT has a number of internal registers that can be opened by typing $x or $nx, where x is one of the following and n is the number of the register within the register set (if appropriate). S User PS (Processor Status word) W User $DSW (Directive Status Word) A Search argument register M Search mask register L Low memory limit register H High memory limit register C Constant register Q Quantity register F Format register X Reentry vector register nB Breakpoint address registers nG Breakpoint preceed count registers nI Breakpoint instruction registers nR Relocation registers nV SST vector registers nE SST stack contents registers nD Device control LUN registers 2 COMMANDS ODT's commands are: = Interpret and display expression B Breakpoint commands (set and remove) K Compute distance F Fill memory G Go (begin execution) O Calculate branch and jump offsets P Proceed from breakpoint R Relocation register commands S Single step W Search memory for bit pattern matches K Search memory for bit pattern exceptions E Search memory for effective address L List memory V Enable ODT's handling of all SST vectors X Exit from ODT (and therefore from the task) For more information on each command, type AID ODT COMMANDS command-symbol 3 = k= Interpret and print expression k as six octal digits and store this word in the Q (quantity) register. For example, _50122+152=50274 _ 3 B B Remove all breakpoints nB Remove nth breakpoint a;B Set the next available sequential breakpoint at location a a;nB Set breakpoint n at location a 3 K K Using the relocation register whose contents are equal to or closest to (but less than) the address of the currently open location, compute the physical distance in bytes between the address of the currently open location and the value contained in the selected relocation register; print this offset and store it in the Q (quantity) register. nK Do the above using the nth relocation register a;nK Do the above between the address a and the nth relocation register 3 F F Fill memory locations within the address limits specified by the low memory limit register ($L) and the high memory limit register ($H) with contents of the search argument register ($A). kF Do the above, but first put the value k into $A. 3 G G Begin execution at the location contained in the User PC ($7). aG Begin execution at (put a into $7 and then G). 3 O aO Calculate and print the PC-relative (jump) offset and the 8-bit branch displacement from the currently open location to address a. a;kO Do the above calculation for address a to address k. 3 P P Proceed from the current breakpoint. kP Proceed from the current breakpoint k times before breakpointing to the console again. 3 R R Disable the use of all relocation registers (set them to 177777) nR Disable the use of relocation register n. a;R Set relocation register 0 to the value a a;nR Set relocation register n to the value a 3 S S Single step (execute the next instruction and then to an automatic breakpoint) nS Execute n instructions and then do an automatic breakpoint 3 W W or kW or m;W or m;kW Search memory between the address limits specified by the low memory limit register ($L) and the high memory limit register ($H) for words with bit patterns which match those of the search argument specified in the search argument register ($A). Compare each memory word and the search argument for equality under the mask specified in the search mask register ($M). If m and k are specified, put their values into $A and $M before searching. 3 N N or kN or m;N or m;kN Search memory between the address limits specified by the low memory limit register ($L) and the high memory limit register ($H) for words with bit patterns which do not macth those of the search argument register ($A) under the search mask register ($M). If m and k are specified, put their values into $A and $M before searching. 3 E E or kE or m;E or m;kE Search memory between the address limits specified by the low memory limit register ($L) and the high memory limit register ($H). Examine these locations for references to the effective address specified in the search argument register ($A), as masked by the value specified in the search mask register ($M). If m and/or k are specified, their values are placed in $M and $A before the search is started. 3 L L or kL or a;L or a;kL or n;a;kL List on an output device all word or byte locations in the task between the address limits specified by the low memory limit register ($L) and the high memory limit register. If k and/or a is specified, their values are placed in $H (high search limit register) and $L (low search limit register) before the search begins. 3 F F Fill memory locations within the address limits specified by the low memory limit register ($L) and the high memory limit register ($H) with the contents of the search argument register ($A). kF Fill memory as above, but put the value k into $A before beginning. 3 V V Enable ODT's handling of all SST vectors. See the V registers ($nV). 3 X X Exit from ODT and therefore from the task.