IBM SC34-5764-01 Server User Manual


 
Since any instructions may be run in interactive debug, you have considerable control over execution.
Some examples:
Say expr /* displays the result of evaluating the */
/* expression. */
name=expr /* alters the value of a variable. */
Trace O /* (or Trace with no options) turns off */
/* interactive debug and all tracing. */
Trace ?A /* turns off interactive debug but continues */
/* tracing all clauses. */
Trace L /* makes the language processor pause at labels */
/* only. This is similar to the traditional */
/* "breakpoint" function, except that you */
/* do not have to know the exact name and */
/* spelling of the labels in the program. */
exit /* stops execution of the program. */
Do i=1 to 10; say stem.i; end
/* displays ten elements of the array stem. */
Note: While in interactive debug, pauses may occur because of PULL statements as well as because of
interactive debug. For programs containing PULL statements, it is important to be aware of the
reason for each pause. In programs, PULL statements are often paired with SAY statements. The
user should enter the data for the PULL at the pause after the trace line for the PULL (the pause
specifically for entering data for the PULL). The user should not enter the data at the pause after
the corresponding SAY statement (this is an interactive debug pause). Exceptions: Some clauses
cannot safely be re-run, and, therefore, the language processor does not pause after them, even if
they are traced. These are:
v Any repetitive DO clause, on the second or subsequent time around the loop.
v All END clauses (not a useful place to pause in any case).
v All THEN, ELSE, OTHERWISE, or null clauses.
v All RETURN and EXIT clauses.
v All SIGNAL and CALL clauses (the language processor pauses after the target label has been
traced).
v Any clause that raises a condition that CALL ON or SIGNAL ON traps (the pause takes place
after the target label for the CALL or SIGNAL has been traced).
v Any clause that causes a syntax error. (These may be trapped by SIGNAL ON SYNTAX, but
cannot be re-run.)
Interrupting Execution and Controlling Tracing
You can use standard CICS facilities to interrupt a REXX exec (the REXX transaction). If properly
authorized, you can issue the CEMT SET TASK PURGE command to halt an exec. Refer to the CICS
Transaction Server for VSE/ESA CICS Supplied Transactions for more information.
Debug Aids
412
CICS TS for VSE/ESA: REXX Guide