The Tachyon Instruction Emulator supports the following debugger commands. At any time you can issue the help or ? command to see a list of the commands.
The call command executes the debugger commands contained within a command file. Any parameters following the command file name will be assigned to variables starting with =1 and the command file name itself will be assigned to =0. All commands read from the command file will have variable references replaced by the corresponding variable values.
If the file c:\debugger\commands.dumpcvt.dbg contains the following:
rem dumpcvt.dbg show "First 48 bytes of the CVT ..." dump [0x10]-0x28 48
You can use the call command as follows:
tie0> call "c:\debugger\commands\dumpcvt.dbg" First 48 bytes of the CVT ... 000039B8 ??? E2D7F34B F14BF040 C8C2C2F3 F3F1F040 SP3.1.0 HBB3310 000039C8 ??? E3C1D3C8 E8D6D540 D6E24040 40404040 TACHYON OS 000039D8 ??? 00003090 F0F3F840 00000218 00000000 ....038 ........
The console command is used to issue an operator console command to the Tachyon Operating Systems simulated console.
tie0> console r 1,u TEE600I REPLY TO 01 IS: U
The dis command disassembles the instructions starting at the given address. If the instruction count is not provided, it defaults to 8.
tie0> dis . 4 00005020 MYPROG+0020: 58B0 C194 L 11,404(0,12) 00005024 MYPROG+0024: 56B0 D078 O 11,120(0,13) 00005028 MYPROG+0028: B240 000B BAKR 0,11 0000502C MYPROG+002C: 12FF LTR 15,15
The drop alias command deletes command aliases that were created using the set alias command. The names of the command aliases to be deleted or an asterisk must follow the drop alias command. Using an asterisk in place of the alias name will cause all command aliases to be deleted. You can use the show alias command to display the active command aliases.
tie0> drop alias break,br
The drop break command deletes break points. The numbers of the break points to be deleted must follow the drop break command. Break point numbers are displayed as each break point is set using the set break command. You can also use the show break command to obtain the numbers of all active break points.
If more than one break point is to be deleted, each number must be separated by a comma. Ranges of break points can be deleted by separating the starting and ending break point numbers by a colon. You can delete all active break points by specifying an asterisk instead of a break point number.
tie0> drop break 2,4:6,8 tie0> drop break *
The drop equ command deletes user-defined symbols that were created using the set equ command. The names of the symbols to be deleted or an asterisk must follow the drop equ command. Using an asterisk in place of the symbol name will cause all user-defined symbols to be deleted. You can use the show equ command to display the active user-defined symbols.
tie0> drop equ cvtaddr,tcbptr
The drop event command deletes event traps. The numbers of the event traps to be deleted must follow the drop event command. Event numbers are displayed as each event is set using the set event command. You can also use the show event command to obtain the numbers of all active event traps.
If more than one event trap is to be deleted, each number must be separated by a comma. Ranges of event traps can be deleted by separating the starting and ending event numbers by a colon. You can delete all active event traps by specifying an asterisk instead of an event number. You can also delete all LOAD events by specifying the word load.
tie0> drop event 2,4:6,8 tie0> drop event *
The drop key command deletes function key definitions that were created using the set key command. The names of the identifiers of the function key definitions to be deleted or an asterisk must follow the drop key command. Using an asterisk in place of the key identifier will cause all function key definitions to be deleted. You can use the show key command to display the active function key definitions. The drop key command is only supported on Windows.
tie0> drop key f1,f3
The drop using command deletes DSECT associations that were created using the set using command. The DSECT names of the associations to be deleted or an asterisk must follow the drop using command. Using an asterisk in place of the DSECT name will cause all DSECT associations to be deleted. You can use the show using command to display the active DSECT associations.
tie0> drop using DFA,CVT
The drop watch command deletes watch points. The numbers of the watch points to be deleted must follow the drop watch command. Watch point numbers are displayed as each watch point is set using the set watch command. You can also use the show watch command to obtain the numbers of all active watch points.
If more than one watch point is to be deleted, each number must be separated by a comma. Ranges of watch points can be deleted by separating the starting and ending watch point numbers by a colon. You can delete all active watch points by specifying an asterisk instead of a watch point number.
tie0> drop watch 2,4:6,8 tie0> drop watch *
The dump command displays the contents of storage starting at the given address. If the count is not provided, it defaults to 8.
tie0> dump [0x10]-0x28 48 000039B8 ??? E2D7F34B F14BF040 C8C2C2F3 F3F1F040 SP3.1.0 HBB3310 000039C8 ??? E3C1D3C8 E8D6D540 D6E24040 40404040 TACHYON OS 000039D8 ??? 00003090 F0F3F840 00000218 00000000 ....038 ........
The help command displays the list of debugger commands and their syntax, or it displays syntax and usage information about a specific command. The help information is displayed 20 lines at a time. You can also use the question mark (?) to display the help information.
tie0> ? set using
The quit command terminates the debugger. If the program has not ended, the Tachyon Operating System interprets the quit command as an operator cancellation of the job.
tie0> quit
The rem command can be used to add comments to a command file. The remainder of the line is ignored. A semicolon can also be used to start a comment.
tie0> rem This is a comment. tie0> ; This is another.
The run command executes instructions until a break-point is encountered, a watch point is triggered, the program ends, or you interrupt the program by hitting control-C. The run command does not accept parameters. If the set trace on command is in effect, the tracing information will be displayed as each instruction is executed.
tie0> run
This form of the set command alters the value of one of the general, access, control or floating point registers, or the value of the floating point control register. You specify the register to be altered using the notation .Xnn. X must be one of: r, a, c or f which represent the general, access, control or floating point registers. The nn value is the decimal number of the register from 0 to 15. For the floating point registers, if bit 13 of control register 0 (the AFPR bit) is not set, the register number must be 0, 2, 4 or 6. If the AFPR bit is set, you can indicate that the floating point control register is to be altered by specifying the regsiter as .fpc.
For a general, access or control register, or the floating point control register, the parameter following the register designator can be an expression.
To set only the upper or lower 32 bits of the register when the emulator is running at architecture level 2, specify a suffix of h or l respectively.
For a floating point register only, the register number may be specified with a suffix that specifies the radix and size of the value. Either the radix or size may be specified or both. The radix must be either the letter h or b to designate hexadecimal or binary floating point formats. The default radix is hexadecimal (h). The size may be specified as the letter e, d or l to designate short, long or extended (two register) sizes. The default size is long (d). If the extended size is specified, only registers 0, 1, 4, 5, 8, 9, 12 or 13 may be specified. The value must be an integer or floating point number.
You can display the contents of the registers with the show regs, show aregs, show cregs and show fregs commands.
tie2> set .r10 0xFFFFFFFF tie2> set .r5h .r6l tie2> set .f4he 3.14159 tie2> set .a2 .r2
The set alias command creates a command alias, allowing you to define your own debugger commands from built-in debugger commands and other command aliases. Once an alias is defined, it can be used like any of the predefined debugger commands. If the alias name is the first word entered on the command line, it will be replaced by the command string from the set alias command.
If the set alias command includes a parameter count greater
than zero, that number of parameters must follow the alias when it is used.
Those parameters will be assigned to
If a help string is specified on the set alias command, then the alias name and help string will be displayed by the help command. If a help file name is also specified, a help command for the alias name will cause the contents of the help file to be displayed.
You can list and delete command aliases with the show alias and drop alias commands.
tie0> set alias go 1 "set psw address =1;run" "address" "help\go.txt"
The set base command changes the default number base to decimal or hexadecimal. The value must be either 10 or 16 decimal (0A or 10 hexadecimal).
tie0> set base 16 tie0> set base 0t10
The set break command sets a break point. A break point is the address of an instruction, which when fetched will halt a run command. The break point address must be the first byte of an instruction in order for the break point to be recognized. You can list and delete break points with the show break and drop break commands.
tie0> set break mycsect.loop Break point #1 set at address 0x01011000, MYCSECT+0100 tie0> run Break #1 at address 0x01011000, MYCSECT+0100 (mycsect.loop)
The set char command may be used to set one or more bytes in storage to a given value. The value must be a hexadecimal or decimal number from 0 to 255 or a quoted string. The byte or string is stored into storage starting at the given address for as many times as specified by the count parameter. If the count is not specified, only one occurrence of the byte value or string is stored.
tie0> set char " " mycsect.msg 32
The set dword command may be used to set one or more 64-bit doublewords in storage to a given value. The value must be a hexadecimal number or signed or unsigned decimal number. If the doubleword count is not specified, only one doubleword is altered. The set dword command is only available when the emulator is running at architecture level 2.
tie2> set dword -1 {.r13+8} 18
The set equ command creates a user-defined symbol that can be used in address expressions. When the symbol is referenced within an address expression, the value of the symbol is the value of the address expression associated with the symbol by the set equ command used to define it. If you reference a symbol without an explict control section prefix, the debugger first checks for the symbol in the list of user-defined symbols before checking if the symbol is defined in a control section.
By default, the address expression associated with a user-defined symbol is evaluated at the time the set equ command is issued. If the keyword dynamic follows the address expression, the expresion will be evaluated at the time the user-defined symbol is referenced.
You can list and delete user-defined symbols with the show equ and drop equ commands.
tie0> set equ cvtaddr [0x10] tie0> set equ tcbptr [0x21c] dynamic tie0> show equ cvtaddr : 0x000044A8 tcbptr : [540]
The set event command defines an action to be taken when an event occurs. LOAD events occur when a module is loaded into storage and LOAD event actions are useful for setting break points when a module is loaded. The module-name may be an asterisk, which matches all module names. The module name may also be a 1-7 character prefix followed by an asterisk. Note: load events are only triggered when a module is brought into storage. This could happen on a LINK, LOAD or XCTL SVC. It will not happen for JPA modules that are already loaded or for any LPA modules.
The do keyword and subsequent commands are optional. If not specified, the debugger will simply enter interactive mode, stopping a run command. However if the do keyword and commands are specified, the commands will be stacked and executed before the debugger enters interactive mode. Multiple commands may be specified in a quoted string and separated by semicolons. The call command is also allowed and is another way to have multiple commands executed when an event is triggered. If one of the commands is run, the debugger will resume executing the program and any subsequent commands will be executed once the debugger is interrupted. It makes most sense for run to be the last of the commands.
The commands can have variable parameters, including =0 and =1. including =0 and =1. =0 will be replaced by the event number, allowing one of the commands to be "drop event =0" so the event will be disabled once it is triggered. =1 will be replaced by the module name that triggered the event.
Multiple events can be triggered by each module and if more than one has associated commands, these will be stacked in the reverse order that the events were set, so the commands associated with the seventh event will be executed before the commands of the fourth event.
You can list and delete events with the show event and drop event commands.
tie0> set event load lmod* tie0> set event load myprog do "set break =1.start;run"
The set half command may be used to set one or more 16-bit halfwords in storage to a given value. The value must be a hexadecimal number or signed or unsigned decimal number from -32768 to 65535. If the halfword count is not specified, only one halfword is altered.
tie0> set half 20 mycsect.count
The set itrace command activates or deactivates the instruction trace facility or sets the number of recently executed instructions that will be retained in the trace buffers. Since programs execute slower when instruction tracing is enabled, you may want to disable instruction tracing if you do not need it. You can use the show itrace command to display the contents of the trace buffers or to display the status of the instruction trace facility. There are three forms of the set itrace command:
tie0> set itrace off
The set key command associates a function key (F1 through F24) with a command string. Once the set key command has been issued, if the function key is the first key pressed after the debugger prompt, the keystroke will be replaced by the command string. A carriage return (Enter) keystroke will be appended to the command unless the edit keyword is included in the set key command. If your keyboard does not have function keys F13 through F24, you can generate them by using the shift key with keys F1 through F12. You can list and delete function key definitions with the show key and drop key commands. The set key command is only supported on Windows.
Note: The debuggers function key support may be incompatible with certain DOS enhancement products such as the Norton NDOS Command Shell.
tie0> set key f1 "help" tie0> set key f4 edit "set psw amode 1;set psw address "
The set log command enables or disables logging to a file of the debugger session or sets the name of the file to be written to when debugger session logging is enabled. You can display the status of debugger session logging with the show log command. There are four forms of the set log command:
tie0> set log file "transcript.log" tie0> set log on
The set psw command alters one or more fields in the Program Status Word. There are four forms of the set psw command:
tie0> set psw cc 2 amode 1 address mycsect.start
The set stgtrace command enables or disables the display of a message each time storage is allocated or freed from a user subpool.
tie0> set stgtrace on
The set stgtrace command enables or disables the display of information as each instruction is executed using the run or step commands, or defines what information will be displayed if tracing is enabled. More than one trace option can be specified in one set trace command. Each option must be separated from the previous one by a comma. The on or off options enable or disable the display of trace information. The log option also enables the display of trace information, but only writes it to the log file if logging is active. If any of the other options are specified, they define what information will be displayed.
tie0> set trace on,"",psw,regs,dis
The set using command creates an association between a DSECT and an address. In order for a DSECT to be recognized by the debugger, the DSECT must be in a module that was assembled and linked using the TEST option. In order for a symbol within a DSECT to be used in an address expression, the containing DSECT must be associated with an address with the set using command.
By default, the address expression associated with a DSECT is evaluated at the time the set using command is issued. If the keyword dynamic follows the address expression, the expresion will be evaluated at the time symbols within the DSECT are referenced.
You can list and delete DSECT associations with the show using and drop using commands.
tie0> set using DFA [[0x10]+0x4C0] tie0> set using SAVEAREA .r13 dynamic tie0> show using DFA : 0x000044F4 SAVEAREA : .R13
The set watch command sets a watch point. A watch point is a range of bytes, which if any are modified will halt a run command. If the byte count is not specified, the count defaults to 1 byte.
tie0> set watch .r10+0x20 32 Watch point #1 set for 32 bytes at address 0x00005020, MYDATA+0020 tie0> run Watch triggered by instruction at address 0x00007010, MYCODE+0010 ... Watch #1 for a range of 32 bytes at 0x00005020, MYDATA+0020 4 bytes changed at address 0x00005036, MYDATA+0036
The set word command may be used to set one or more 32-bit words in storage to a given value. The value must be a hexadecimal number or signed or unsigned decimal number. If the word count is not specified, only one word is altered.
tie0> set word 0 .r13 18
The show command displays emulator register values, strings, symbolic information and debugger settings. The show command accepts multiple operands separated by commas, allowing more than one value to be displayed by a single command. The show command options are described below.
tie0> show "All registers",psw,regs,aregs,cregs,fregs tie0> show using dsect,key f1,equ
This form of the show command displays the value of the specified floating point register both as a hexadecimal number and as the formatted floating point value. If bit 13 of control register 0 (the AFPR bit) is not set, only the basic floating point registers may be specified (0, 2, 4 or 6). If the AFPR bit is set, any of the 16 floating point registers may be specified.
The register number may be specified with a suffix that specifies the radix and size of the value in the register. Either the radix or size or both may be specified. The radix must be the letter h or b to designate hexadecimal or binary floating point formats. The default radix is hexadecimal (h). The size must be the letter e, d or l to designate short, long or extended (two register) sizes. The default size is long (d). If the extended size is specified, only registers 0, 1, 4, 5, 8, 9, 12 or 13 may be specified.
tie0> show .f0e FR0HE: 413243F3 +3.14159E+000
If a string is specified as a
tie0> show "This is echoed." This is echoed.
The show alias command lists all or one of the defined command aliases that were created using the set alias command. If the name of a command alias is specified, then only the definition for that alias is displayed. If an alias name is not specified, all currently active command aliases are displayed.
tie0> show alias go GO : setpsw address =1;run 1 parameter Help string: address Help file: help\go.txt
The show aregs command displays the values in the 16 access registers.
tie0> show aregs AR00: 0x00000000 AR01: 0x00000000 AR02: 0x00000000 AR03: 0x00000000 AR04: 0x00000000 AR05: 0x00000000 AR06: 0x00000000 AR07: 0x00000000 AR08: 0x00000000 AR09: 0x00000000 AR10: 0x00000000 AR11: 0x00000000 AR12: 0x00000000 AR13: 0x00000000 AR14: 0x00000000 AR15: 0x00000000
The show break command lists all currently active break points that have been created using the set break command.
tie0> show break 1 : 0x01011000 MYPROG+0000 2 : 0x01011020 MYPROG+0020
The show cregs command displays the values in the 16 control registers.
tie0> show cregs; if in architecture level 0 or 1 CR00: 0x08B100E0 CR01: 0x00000000 CR02: 0x00000000 CR03: 0x00800001 CR04: 0x00000001 CR05: 0x0100E000 CR06: 0x00000000 CR07: 0x00000000 CR08: 0x00000000 CR09: 0x00000000 CR10: 0x00000000 CR11: 0x00000000 CR12: 0x00000000 CR13: 0x80000000 CR14: 0xC0080000 CR15: 0x0100A008 tie2> show cregs; if in architecture level 2 CR00-03: 0000000008B100E0 0000000000000000 0000000000000000 0000000000800001 CR04-07: 0000000000000001 000000000100E000 0000000000000000 0000000000000000 CR08-11: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 CR12-15: 0000000000000000 0000000080000000 00000000C0080000 000000000100A008
The show equ command lists all or one of the user-defined symbols that were created using the set equ command. If the name of a user-defined symbol is specified, then only the definition for that symbol is displayed. If a symbol name is not specified, all currently active user-defined symbols are displayed.
tie0> show equ cvtaddr : 0x000044A8 tcbptr : [540]
The show event command lists event traps. The number of the event trap to be listed must follow the show event command. If more than one event trap is to be listed, each number must be separated by a comma. Ranges of event traps can be listed by separating the starting and ending event numbers by a colon. You can list all active event traps by specifying an asterisk instead of a event number. You can also list all LOAD events by specifying the word load.
tie0> show event 2:4 tie0> show event *
The show fregs command displays the values in the floating point registers. If bit 13 of control register 0 (the AFPR bit) is not set, the 4 basic floating point registers are displayed as if they contain long (8 byte) floating point values. If the AFPR bit is set, the floating point control register and the values of all 16 of the floating point registers are displayed.
tie0> show fregs; if not in AFPR mode FR0: 0x00000000 00000000 +0.0 FR2: 0x00000000 00000000 +0.0 FR4: 0x41100000 00000000 +1.00000000000000E+000 FR6: 0x00000000 00000000 +0.0 tie0> show fregs; if in AFPR mode FPC: 0x00000000 MASKS=00000 FLAGS=00000 DXC=00 RM=0 FR00: 0x00000000 00000000 FR02: 0x00000000 00000000 FR01: 0x00000000 00000000 FR03: 0x00000000 00000000 FR04: 0x41100000 00000000 FR06: 0x00000000 00000000 FR05: 0x00000000 00000000 FR07: 0x00000000 00000000 FR08: 0x00000000 00000000 FR10: 0x00000000 00000000 FR09: 0x00000000 00000000 FR11: 0x00000000 00000000 FR12: 0x00000000 00000000 FR14: 0x00000000 00000000 FR13: 0x00000000 00000000 FR15: 0x00000000 00000000
The show itrace command displays the status of the instruction trace facility or displays the most recently executed instructions captured in the instruction trace buffers. There are four forms of the set itrace command:
tie0> show itrace 3 01011000 MYPROG+0000 STM 14,12,12(13) 01011004 MYPROG+0004 BC 15,112(0,15) -> 01011070 MYPROG+0070 01011070 MYPROG+0070 LA 12,0(,15)
The show key command lists all or one of the function key definitions that were created using the set key command. If a function key is not specified, all currently active function key definitions are displayed. If a function key is specified, then only the definition for that key is displayed. If the edit keyword is specified after the function key indentifier, the set key command used to create the function key definition is displayed so it can be edited. The show key command is only supported on Windows.
tie0> show key f1 F1: "help"
The show log command displays the state of the debugger session logging as set by the set log command.
tie0> show log Logging is currently disabled. Log file is "tie.log".
The show map command displays a map of the loaded modules, a map of the sections within a specific module or a map of the symbols with a modules section. If no module name is specified, a list is printed of all loaded modules that were linked with debugging information. If a module name is specified without a section name, a map is printed of all control sections in the module. If the information is available, the DSECTs associated with the module are also listed. If both a module name and a section name are specified for a load module created by the Tachyon Linkage Editor, a map of the symbols and data items will be printed.
tie0> show map Module Address Size X390IVP 00008000 000000B0
The show psw command displays the contents of the Program Status Word. If the current addressing mode is 64-bit, the PSW is displayed in 128-bit format, otherwise the PSW is displayed in 64-bit format.
tie0> show psw PSW: 078D0000 810110AA CC=0 MASK=0 AMODE=31 ADDRESS=010110AA MYCSECT+00AA tie2> show psw PSW: 078D0001 80000000 00000000 010110AA CC=0 MASK=0 AMODE=64 ADDRESS=010110AA MYCSECT+00AA
The show regs command displays the values in the 16 general registers.
tie0> show regs; if in architecture level 0 or 1 R00: 0x000003F8 R01: 0x000010D0 R02: 0x000014C8 R03: 0x00000000 R04: 0x00000001 R05: 0x00000000 R06: 0x00000000 R07: 0x00000000 R08: 0x00000000 R09: 0x00000000 R10: 0x00000000 R11: 0x00000000 R12: 0x01011000 R13: 0x000010D0 R14: 0x00000000 R15: 0x00000000 tie2> show regs; if in architecture level 2 R00-03: 00000000000003F8 00000000000010D0 00000000000014C8 0000000000000000 R04-07: 0000000000000001 0000000000000000 0000000000000000 0000000000000000 R08-11: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 R12-15: 0000000001011000 00000000000010D0 0000000000000000 0000000000000000
The show stgtrace command displays the status of the storage trace display as set by the set stgtrace command.
tie0> show stgtrace Storage tracing is currently enabled.
The show symbol command displays everything the debugger knows about the named symbol.
tie0> show symbol mycsect.label MYCSECT+0F8E Label DC 2AL4 at 0x01011F8E
The show trace command displays the status of the trace display as set by the set trace command.
tie0> show trace Trace is currently enabled for "",REGS,PSW,DIS
The show using command lists all or one of the currently active DSECT associations that were created with the set using command. If a DSECT name is specified, then only the definition for that DSECT association is displayed. If a DSECT name is not specified, all currently active DSECT associations are displayed.
tie0> show using savearea SAVEAREA : .R13
The show watch command lists all currently active watch points that have been created using the set watch command.
tie0> show watch 1 : 32 bytes at 0x00005020, MYCSECT+0020 (2080)
The step command executes the instruction pointed to by the Program Status Word. If the set trace on command is in effect, tracing information will be displayed for the next instruction.
tie0> step