The prefixes ! and ? are valid
either alone or with one of the alphabetic character options. You
can specify both prefixes, in any order, on one TRACE instruction.
You can specify a prefix more than one time, if desired. Each occurrence
of a prefix on an instruction reverses the action of the previous
prefix. The prefix(es) must immediately precede the option (no intervening
blanks).
The prefixes
! and
? modify tracing
and execution as follows:
- !
- Inhibits host
command execution. During regular execution, a TRACE instruction with
a prefix of ! suspends execution of all subsequent
host commands. For example, TRACE !C causes commands
to be traced but not processed. As each command is bypassed, the
REXX special variable RC is set to 0. You can use
this action for debugging potentially destructive programs. (Note
that this does not inhibit any commands entered manually while in
interactive debug. These are always processed.)
You can switch
off command inhibition, when it is in effect, by issuing a TRACE instruction
with a prefix !. Repeated use of the ! prefix,
therefore, switches you alternately in or out of command inhibition
mode. Or, you can turn off command inhibition at any time by issuing TRACE
O or TRACE with no options.
- ?
- Controls interactive debug. During usual execution, a TRACE option
with a prefix of ? causes interactive debug to be
switched on. (See Interactive debugging of programs for full
details of this facility.) While interactive debug is on, interpretation
pauses after most clauses that are traced. For example, the instruction TRACE
?E makes the language processor pause for input after executing
any command that returns an error (that is, a nonzero return code).
Any TRACE instructions in the program being traced are ignored.
(This is so that you are not taken out of interactive debug unexpectedly.)
You
can switch off interactive debug in several ways:
- Entering TRACE O turns off all tracing.
- Entering TRACE with no options restores the defaults—it
turns off interactive debug but continues tracing with TRACE Normal
(which traces any failing command after execution) in effect.
- Entering TRACE ? turns off interactive debug
and continues tracing with the current option.
- Entering a TRACE instruction with a ? prefix
before the option turns off interactive debug and continues tracing
with the new option.
Using the
? prefix, therefore, switches you
alternately in or out of interactive debug. (Because the language
processor ignores any further TRACE statements in your program after
you are in interactive debug, use
CALL TRACE '?' to
turn off interactive debug.)
Tip: The TSO/E REXX immediate
command TS and the EXECUTIL TS command can also be used to enter interactive
debug. See TSO/E REXX commands.