InterTest™ and SymDump ® 11.0
Switch Between Breakpoint Screens
If the first InterTest for CICS breakpoint screen you see is a Detailed Breakpoint display, you might want to switch to the
Source Listing Breakpoint Display version for your program testing. To switch from the Detailed Breakpoint screen to the
Source Listing Breakpoint screen, perform these steps:
1.Press PF3 Source. You should now see the Source Listing Breakpoint Display.
2.Enter PROFILE in the command line and press Enter. The Source Listing Profile screen appears.
3.Enter ON in the Source List BKPT= field and press Enter. You are returned to the Source Listing Breakpoint display.
Once you complete these steps, InterTest for CICS displays the Source Listing Breakpoint version at future breakpoints in
your test session. For more information, see the Source Listing Facility.
To switch from the Source Listing Breakpoint to the Detailed Breakpoint display, perform these steps:
1.Enter PROFILE  in the command line of a Source display and press Enter. The Source Listing Profile appears.
2.Enter OFF in the Source List BKPT= field and press Enter.
3.Press PF3 DET BKPT. You should now see the Detailed Breakpoint display version.
NOTE
The default value of the Source List BKPT= field is set by your System Administrator when installing InterTest for
CICS.
Indirect Commands
The InterTest for CICS indirect commands facility enables you to define a set of commands that execute automatically,
or indirectly, at a predetermined location in a monitored COBOL or PL/I program. Invoke these commands from an
unconditional, conditional, or request breakpoint.
In effect, indirect commands are executed at breakpoints within your program just as other InterTest for CICS line
commands issued from the Source Listing Display, such as MOVE and GO, are used to alter the flow of your program's


logic. The difference is that indirect commands are executed automatically without issuing a breakpoint display. Once the
indirect commands are performed, your program continues to execute normally.
Indirect commands save you from having to recompile a program or manually correct an area of code every time it is
encountered during a debugging session. With the indirect commands facility, you can perform the following actions:
•Change the flow of control in your program
•Test conditions based on specified variables
•Change the value of specified variables
•Create and execute commands as a group, like adding a new subroutine
•Automatically resume execution of your program at the same or different location
•Define abbreviations for variables with long names
NOTE
Indirect commands are not available for Assembler programs.
How Can You Use Indirect Commands?
Use indirect commands to correct the following sample program problems:
 1023


InterTest™ and SymDump ® 11.0
•A variable is not being initialized during processing. Using indirect commands initialize the variable every time the
program is run and continue execution without recompiling.
•A new routine is needed in your program. Insert the code using indirect commands and continue executing your
program without recompiling.
•A section of code is bad. To continue executing or testing without recompiling, write and invoke indirect commands to
direct InterTest for CICS to go around the bad source code or execute a new series of indirect command statements.
•You must debug a COBOL or PLI program, which is invoked by a web process or run as background task and is not
associated with a specific terminal or userID. You must specify your own criteria when the programs breakpoints
should be taken or ignored.
Overview of Steps
To invoke indirect commands in your program, perform these steps:
1.Enter the statement numbers and indirect command statements on the Indirect Commands screen. To access the
Indirect Commands screen, use Option #11 from a Source Listing screen, or select the Command option on the
Program Monitoring menu.
2.Use the Monitoring Menus or Source Listing facility to set a breakpoint (unconditional, conditional, or request) where
the indirect commands will take effect. As you set the breakpoint, you must access the Breakpoint Options menu
and specify the first statement number of the Indirect Command as an option to that breakpoint. Option #12
(Bkpt Opt) on the Source Listing screen provides access to the Breakpoint Options menu.
3.Specify the terminal ID (terminal ID, .ANY, or .NO) or user ID for the indirect commands to take effect.
The following section describes each of these steps in detail.
NOTE
Set the breakpoint and give the starting indirect command number before you code the indirect commands. The


NOTE
Set the breakpoint and give the starting indirect command number before you code the indirect commands. The
order is up to you. However, new users often find it easier to code the indirect commands first, and then attach
them to breakpoints.
Set a Breakpoint to Execute an Indirect Command
Before accessing the indirect commands facility, first set an unconditional, conditional, or request breakpoint that includes
an option to execute an Indirect Command statement number.
Follow the steps listed next when setting an unconditional or conditional breakpoint from the Source Listing Breakpoint:
1.From the Source Listing Breakpoint, set an unconditional or conditional breakpoint that will invoke the indirect
commands.
The following table summarizes how to set the breakpoints from the Source Listing Facility:
Breakpoint Source Listing Entries
Unconditional Specify:
Option # 12 (Bkpt Opts).
U or ) to the left of one or more statements. The U breakpoint
stops before  the statement. The ) breakpoint stops after the
statement.
Press Enter.
Conditional Specify:
Option #  12 (Bkpt Opts).
C to the left of one or more statements.
Press Enter.
Request Use Monitoring Menus.
Note:  To jump to the Program Monitoring Menu from a breakpoint
display, enter =1.2.1  on the command line.
 1024


InterTest™ and SymDump ® 11.0
The following screen shows how to set an unconditional breakpoint for indirect commands from the Source Listing facility.
Notice the required Option # 12 entry at the top of the screen.
CA InterTest for CICS - PROTDEM FILE PROTDEM FILE SOURCE LISTING BREAKPOINT
 COMMAND ==>                 ↓
 Program= COBDEMO  Option # 12    Stmt #                            Margin= 01
                   Label/Search Arg=
 OPTS 1 Proc div  2 Work-stor 3 Link sect 4 D-map      5 Clst/Pmap More:   +
     6 Data xref 7 Proc xref 8 Err msgs  9 Srch fwd  10 Srch bwd
 PFKS 1 Help     2            3 Det BKPT   4 Profile    5 Resume      6 Menu
      7 Backward 8 Forward    9           10 Do 1 Verb 11 Backtrace 12 Status
-----------------------------------------------------------------------------
    00788     03  OPTSPROTHLF        PIC X(8).
    00789

    00790 PROCEDURE DIVISION USING DFHEIBLK DFHCOMMAREA.

  U 00791     CALL 'DFHEI1'.
 ↑
•Enter Option # 12 and U on Source Listing for Indirect Commands.
•After pressing Enter, InterTest for CICS displays the Breakpoint Locations menu with the location you selected on the
Source Listing already indicated.
•On the Breakpoint Locations menu, specify the (still to be written) one- to five-digit statement number of the first
indirect command that you want to be executed at the breakpoint you are setting. For example, enter 10 or 50.


CA InterTest MONITORING COMMAND BUILDER - COBOL BREAKPOINT LOCATIONS      11
     SET breakpoint options for   PROG=COB2DEMO for location:
             000791     CALL 'DFHEI1'.
                                                                       After:
            Enter 'n' to stop only every n'th time:                         ____
            Term ID (or .ANY or .NO) where breakpoints will take effect:
            Term ID (or .ANY) that will receive the breakpoints:
            Statement no. of indirect command(s) to be executed:           50___
            User ID (or .ANY) who will execute the program:             .ANY
 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
•Press Enter. InterTest for CICS processes the breakpoint as usual, and displays a message to that effect.
•InterTest for CICS displays the Indirect Commands screen containing the following fields:
Term ID
Indicates the terminal where the specified indirect commands execute. This value must match the terminal ID
specified at the breakpoint that invokes these indirect commands. Enter one of the following values:
xxxx — indicates a specific terminal.
.ANY — indicates that these commands will execute at all terminals.
 1025


InterTest™ and SymDump ® 11.0
NOTE
If indirect commands are specified for both .ANY and your specific terminal, the indirect commands
specified for your  terminal take precedence.
.NO— indicates that these commands execute with no terminal.
Delete ALL
Deletes all previously specified indirect commands for the program you are testing. Enter one of the following
options:
NO —  indicates that the indirect commands at the specified terminal will not be deleted (default).
YES— indicates that the indirect commands at the specified terminal will be deleted.
Line
Indicates the one- to five-digit sequence number, from 1 to 99999, of the indirect command, which must be
followed by at least one blank space. This number must be the first item entered except for continued commands,
and must begin in the first position of the input line.
Command
Displays the actual command text to be performed during Indirect Command execution from a breakpoint. For a
complete listing of indirect commands, see Indirect Command Syntax.
Code Indirect Commands
Use the Indirect Commands screen to code all indirect commands for your program. For more information about syntax,
see COBOL Variable Syntax and PL/I Variable Syntax.
When you are finished coding an indirect command statement, perform these steps:
1.Press Enter. InterTest for CICS translates everything you entered into uppercase characters and checks the command
for syntactical accuracy. If the command is correct, one of the following messages is displayed:
CAIN1261 Indirect command(s) added.
Indirect command(s) replaced.
2.When you have coded all of your indirect commands, press PF3 or Clear.
From Source Listing
If you are working from the Source Listing facility, you return to the Source Listing display.
Indirect Command Examples
The following examples explain how to use indirect commands to correct the errors in the InterTest for CICS demo


program COBDEMO.
1.To prevent the ASRA problem caused by the invalid decimal arithmetic data value assigned to the COBOL data-item
TASKNUM:
–Using Source Listing Option # 12 with a U line command, set an unconditional breakpoint at statement number 500.
–Specify 10 as the indirect command statement number that you want to execute at the breakpoint.
–Using the Source Listing Option # 11, access the indirect commands facility. Then, enter the indirect commands on
the Indirect Commands screen, as shown next.
CA InterTest MONITOR COMMAND BUILDER    COBDEMO  INDIRECT COMMANDS     24

    Term ID (or .ANY or .NO): X001                   Delete ALL: NO

 LINE  COMMAND
------------------------------------------------------------------------------
 00010  /* INITIALIZE TASKNUM */
 1026


InterTest™ and SymDump ® 11.0
 00020  MOVE 1 TO TASKNUM
 00030  EXIT

  1 Help       2            3 End        4           5                6
  7 Backward   8 Forward    9 Top       10 Bottom   11               12
  CAIN1261 Indirect commands added.
NOTE
Setting TASKNUM to 1 alters the demo results. The clear key must be used to complete the termination of
the demo when the "You have completed the sample InterTest for CICS test session" screen appears.
2.To avoid the storage violation that occurs in COBDEMO:
–Using Source Listing option 12 with a U line command, set an unconditional breakpoint at statement number 978
–Specify 50 as the indirect command statement number that you want to execute at the breakpoint
–Using the Source Listing Option # 11, access the indirect commands facility, and then add the following commands.
CA InterTest MONITOR COMMAND BUILDER    COBDEMO  INDIRECT COMMANDS 24
    Term ID (or .ANY or .NO): X001                   Delete ALL: NO
-----------------------------------------------------------------------

 00010  /* INITIALIZE TASKNUM */
 00020  MOVE 1 TO TASKNUM
 00030  EXIT
 00040  *
 00050  /* CIRCUMVENT STORAGE VIOLATION */
 00060  GOTO 'SENDMAP00'

  1 Help       2            3 End        4           5                6
  7 Backward   8 Forward    9 Top       10 Bottom   11               12
  CAIN1261 Indirect commands added.


CAIN1261 Indirect commands added.
3.To perform the code that was bypassed at statement 1369 at another location where it will not cause a storage
violation:
–Using the Source Listing Option # 12 with a U line command, set an unconditional breakpoint at statement number
974
–Specify 80 as the indirect command statement number that you want to execute at the breakpoint
–Using the Source Listing Option # 11, access the indirect commands facility, then add the following commands.
CA InterTest MONITOR COMMAND BUILDER    COBDEMO  INDIRECT COMMANDS    24

    Term ID (or .ANY or .NO): X001                   Delete ALL: NO
----------------------------------------------------------------------------

  LINE  COMMAND

 00010  /* INITIALIZE TASKNUM */
 00020  MOVE 0 TO TASKNUM
 00030  EXIT
 00040  *
 00050  /* CIRCUMVENT STORAGE VIOLATION */
 00060  GOTO 'SENDMAP00'
 00070  *
 00080  /* INSERT MOVE AT A SAFE LOCATION */
 00090  IF NEWDATA > ZEROES THEN MOVE NEWDATA TO STGAREA1
 1027


InterTest™ and SymDump ® 11.0
 00100  EXIT

  1 Help       2            3 End        4           5                6
  7 Backward   8 Forward    9 Top       10 Bottom   11               12
  CAIN1261 Indirect commands added.
4.To debug a program that is invoked by multiple transaction IDs and take breakpoints only when a particular transaction
ID is specified:
–Using the Source Listing Option # 10 with a U line command, set an unconditional breakpoint at the beginning of
the procedure division.
–Specify the indirect command statement number that you want to execute at the breakpoint.
–Specify the FROM Terminal, where the breakpoint should take effect, as .ANY.
Now, all other program breakpoints that are set may be taken only when the conditions specified by the indirect
command 10 are true.
CA InterTest MONITOR COMMAND BUILDER    COBDEMO  INDIRECT COMMANDS    24

    Term ID (or .ANY or .NO): X001                   Delete ALL: NO
----------------------------------------------------------------------------

  LINE  COMMAND
  00010 IF EIBTRNID =  ‘DEC2’ THEN BREAK
  00020 RUN
  00030 EXIT

  1 Help       2            3 End        4           5                6
  7 Backward   8 Forward    9 Top       10 Bottom   11               12
  CAIN1261 Indirect commands added.
View Indirect Commands on the Status Report
The status report displays a list of all active indirect commands, and all active breakpoints and other monitoring options.
Each line on the report shows the type of breakpoint, the presence of indirect commands, and the terminal at which they


are set to take effect.
Access
To access the status report from the Source Listing display or breakpoint enter the command STATUS, or press PF12
Status. The following screen shows how indirect commands are represented on the InterTest Status Report:
         CA InterTest for CICS - MONITORING STATUS
 COMMAND ===>

   Type + to expand or   collapse option levels displayed below,
          or R to remove option(s).

     Option     Description                Attributes
 _   COBDEMO    Program monitor entry      COBOL
 _ + | .ANY     User monitoring options    Active
 _   | CARAR01  User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 _     | UBP    Unconditional breakpoint   'CONTINUE TASK'
       |        Option ID                  4B893C0
 1028


InterTest™ and SymDump ® 11.0
       |        From, to terminals         .ANY, .ANY
       |        Execute indirect command   100
 _     | CMD    Indirect commands defined  .ANY
       |        Option ID                  90AB36F1
 _     | SLB    Source listing breakpoints .ANY
                *** End of data ***

 PF1 Help       2 Refresh    3 End        4 Return     5 Collapse   6 Expand
 PF7 Backward   8 Forward    9           10           11           12
The previous figure shows the status report expanded for the program COBDEMO when monitored by user ID CARAR01.
Notice the unconditional breakpoint entries and indirect command entries, which are discussed next.
UBP
The UBP entry identifies the unconditional breakpoint set at the procedure-name Continue-Task. Notice the last
line of the UBP description is Execute indirect command ... 100.
CMD
The CMD entry identifies the indirect commands. Notice the indirect commands are assigned the option ID
90AB36F1.
To return to the Source Listing display from the Status Report, press PF3 or Clear .
Edit Indirect Command Definitions
To view, add, change, or delete indirect commands directly from the Source Listing facility, enter 11 in the Option # field.
InterTest for CICS displays the indirect commands defined for the default terminal, which is either the terminal you are
working at or the terminal specified on the Source Listing Profile.
ITST Access to Indirect Commands
The ITST Monitoring Menus and the CNTL menu allow direct access to the indirect commands facility, where you can
code or edit indirect commands to be executed by breakpoints.
From any menu or Source Listing screen, perform these steps:


From any menu or Source Listing screen, perform these steps:
1.Access the ITST Program Monitoring menu (ITST 2.1).
The fast-path command entry from a breakpoint is:
Command ==> =1.2.1 .
2.On the Program Monitoring menu, complete the Program name  and type S next to the Commands (indirect
commands) Option.
3.Press Enter to continue to the next screen. The Indirect Commands screen displays.
Optionally, specify the terminal ID where the indirect commands will take effect and the user ID that executes the program
when the indirect commands are to take effect.
NOTE
Generally, accept the defaults. Press PF1 for help in completing these fields, if necessary.
To edit indirect commands previously coded for a program, ensure the terminal ID and user ID entries match those initially
used to code the indirect commands.
Press Enter  to continue. InterTest for CICS displays the Indirect Commands screen for the requested program, terminal
ID, and user ID.
For details on how to insert insert, copy, edit, and delete the commands, see Format Indirect Commands.
 1029


InterTest™ and SymDump ® 11.0
Indirect Command Syntax
This section discusses execution flow and syntax.
Execution Flow Control
If a breakpoint is set to invoke indirect commands, when you run your program the commands are automatically executed
without stopping first. Execution is returned to the program according to the exi t command that you specified in your
indirect commands.
To return execution to your program following the indirect commands processing, use one of the following exit commands:
BREAK
InterTest for CICS halts indirect commands processing and issues a breakpoint display from where the indirect
commands were invoked in the program.
GOTO
InterTest for CICS resumes execution at the program statement number, offset, paragraph name, or indirect
command statement number specified after the GOTO command.
EXIT
InterTest for CICS resumes program execution at the breakpoint location from which the indirect commands were
invoked and continues debugging the program until the next breakpoint.
RUN
InterTest for CICS resumes program execution at the breakpoint location from which the indirect commands were
invoked and ignores all subsequent breakpoints.
Command Syntax
The syntax for the basic commands available in the indirect commands facility is described next.
Note: All bold characters are required in the syntax of the command.
Equate Command
This command equates a one- to eight-character symbol of your choice to a relatively long data name. A maximum of ten
EQuate symbols can be active concurrently.
The syntax is:
EQuate symbol [TO] data-name
symbol
Indicates any user-defined symbol that observes the rules for data names.
data-name
Specifies the corresponding variable name.
Brackets, [ ], indicate an optional entry.
Example
EQ TN TASKNUMBER
Exit Command
The Exit command returns control to the statement following the last executed PErform indirect command. If no PErform


is active, indirect processing is terminated and control is returned to the program, where execution continues from the
breakpoint. Any relational operands entered with this command are ignored.
 1030


InterTest™ and SymDump ® 11.0
Example
EX
Goto Command
This command resumes execution at a specified location. The syntax controls where execution resumes.
To resume execution at the specified indirect command sequence number, use this syntax:
GOto *nnnnn
To resume execution at the specified statement number, use this syntax:
GOto #nnnnn
To resume execution at the specified hexadecimal displacement, use this syntax:
GOto +nnnnn
To resume execution at the specified paragraph-name, use this syntax:
GOto 'paragraph-name'
Example
GO *1150
IF, THEN Statement
This statement tests a conditional expression. If the expression is true, the THEN portion is processed.
The syntax is:
IF expression THEN indirect command
expression
Specifies any valid condition.
indirect command
Specifies any valid indirect command.
Example
IF (A+B)*C=D
  THEN GOTO *1150
Break and Pause Commands
The BReak and PAuse commands terminate indirect command processing and redisplay the Breakpoint display. Any
operands included with these commands are ignored by InterTest for CICS.
Example
BR
Move Command
This command moves the specified source-item to the target data-name. Follow COBOL MOVE statement rules when
formatting an indirect command Move.
The syntax is:
 1031


InterTest™ and SymDump ® 11.0
Move [source-item] TO data-name
Note: Brackets,[ ], indicate a choice of source-items.
Valid source-items follow.
•[ALL,]' char-data '
[ALL,]" char-data "
'char-data ' or "char-data " is a non-numeric character string.
•[ALL,] x'hex-data ' [ALL,] x"hex-data "
x'hex-data ' or x"hex-data" is a hexadecimal string.
•numeric literal
numeric literal  is valid only if the target data-name is a numeric variable.
•figurative constant
figurative constant  is any valid COBOL figurative constant.
•floating-point literal
floating-point literal  is valid only if the target data-name is COMPUTATIONAL-1, COMPUTATIONAL-2 (COBOL) or
FLOAT (PL/I).
•arithmetic expression
arithmetic expression  is any valid InterTest arithmetic expression.
•bit literal
bit literal  is any bit literal string.
NOTE
For more information about each of these source items, see Format Indirect Commands.
data-item
Refers to a COBOL or PL/I variable name. Qualifiers and subscripting are allowed.
data-name
Refers to another COBOL or PL/I variable name. If the data-name is a COBOL Index cell, the MOVE command
moves exactly the data specified into the Index cell. No mathematical calculation is performed.
Perform Command
This command transfers control to the specified indirect command sequence number as a subroutine call. A maximum of
five PErform commands can be active concurrently.
The syntax is:
PErform nnnnn
nnnnn
Indicates the indirect command sequence number to which control is transferred.
Example
PE 2250
Run Command


Example
PE 2250
Run Command
The RUN command resumes program execution at the breakpoint location from which the indirect commands were
invoked and ignores all subsequent breakpoints.
Example
RUN
 1032


InterTest™ and SymDump ® 11.0
Format Indirect Commands
Rules
Indirect commands and their arguments are free-form. However, there are several rules to keep in mind as you format
your commands:
•All arguments must be separated by at least one blank space.
•Only one indirect command displays on a line (with the exception of the IF command), but one indirect command
spans several lines.
–The first line of a command must begin with a line number followed by a blank space
–Consecutive lines of a single command must begin with at least one blank space
Example
10 IF DATA-COUNTER <> 0
THEN M 0 TO DATA-COUNTER
20 BR
•New indirect commands are entered by:
–Overtyping an existing command
–Entering new indirect commands on blank lines below existing ones
Example
If you have indirect command 10 followed by indirect command 20, to insert commands between the two you would tab
to the next blank line, enter indirect commands 11 through 19. Press Enter. InterTest for CICS places the commands in
numeric sequence.
•Duplicate indirect commands by changing only the sequence number of an existing indirect command. The original
command is not affected; it is duplicated at the specified sequence number.
Note: Be sure to overtype the entire line number when duplicating a command. Failure to do so can result in an
erroneous move. For example, if you want command 00010 to be copied to line 00045, you must overtype the entire
line number 00010 with 00045 or 45 b b b (where b is a blank). If you only overtype the first two digits with 45, the
command will be copied to line 45010, not 00045.


command will be copied to line 45010, not 00045.
•Enter comments in place of commands. To enter a comment, specify a sequence number followed by at least one
space, and then enter either an asterisk (*) or a backslash and an asterisk (/*) followed by at least one space and your
comment.
Example:
00035  * THIS IS A COMMENT LINE
•Indirect commands are verified after you press Enter, but some errors might not be detected until the indirect
commands are actually processed.
•Delete an entire set of indirect commands by specifying YES in the Delete ALL= field.
Delete a specific indirect command by overtyping the line number with DEL.
Data Names and Variables
Indirect commands reference any data name in the Data Division Linkage section of the program that you are testing.
For COBOL (prior to COBOL II Release 1.3)
•One group-item qualifier is allowed. It is any group that contains the item in question:
 1033


InterTest™ and SymDump ® 11.0
–Immediate parent
–01-level
–Any level in between the immediate parent and the 01-level
•Up to three levels of subscripting are allowed. Subscripts include:
–Positive integer numeric literal
–Another variable defined as a positive integer numeric field (no sign or decimal portion)
–INDEX item (either INDEXED BY or USAGE INDEX)
For COBOL II (Releases 1.3 and higher)
•One program-ID qualifier is allowed.
NOTE
If your COBOL II source listing contains a nested program that has a local variable with a name identical to a
variable in the main program, use the appropriate program-ID to indicate which variable you are referencing.
•One group-item qualifier is allowed. It can be any group containing the item in question:
–Immediate parent
–01-level
–Any level in between the immediate parent and the 01-level
•Up to seven levels of subscripting are allowed. Subscripts include:
–Positive integer numeric literal
–Another variable defined as a positive integer numeric field (no sign or decimal portion)
–INDEX item (either INDEXED BY or USAGE INDEX)
Example
DATE OF INVOICE
TABLE-ENTRY(4,TABLE-INDEX)
For PL/I Programs
•Only items declared as STATIC, AUTOMATIC, BASED, and POINTER type variables that are declared as parameters
to the entry point of the MAIN procedure are supported.
•One procedure-name qualifier is allowed. If your PL/I source contains an internal procedure that has a local variable
with a name matching a variable in the main procedure, use the appropriate procedure-name to indicate to which
variable you are referencing.
•Up to 15 structure-name qualifiers are allowed. You must follow PL/I notation conventions; for example: A.B.C.D.E.


•Up to 15 levels of subscripting are allowed. A subscript includes:
–Integer numeric literal
–Another variable defined as an integer numeric field (no decimal portion)
•The subscript value must be within the actual declared bounds of the array.
Example
If the array is declared as (100:200), subscript values must be within the range of 100 to 200, inclusive.
•The base address for a variable is supplied with the base locator notation. One item supplies the base address for
the next item, which in turn supplies the base address for the next variable, up to a limit of 15 items. This feature is
intended for BASED variables, but it is used to map any declaration over any addressable storage.
Example:
DATE OF INVOICE
TABLE_ENTRY(4,TABLE_INDEX)
 1034


InterTest™ and SymDump ® 11.0
Literals in Indirect Commands
Numeric   is a string of one to eighteen digits with no intervening commands or decimal point, such as 7954. If the target
variable contains an implied decimal point, then the decimal point must also be implied in the literal.
Floating point   is appropriate only for COMPUTATIONAL-1 and COMPUTATIONAL-2 target variables that consist of the
following:
•A sign
•A string of up to seven digits with an optional decimal point
•The character E followed by an optional signed exponent
Alphanumeric   is a character string enclosed within single quotation marks ( '), or double quotation marks ("), such as
'RALPH9' or "RALPH9".
Hexadecimal   is a string of an even number of characters consisting of 0 to 9 and A to F, enclosed within single
quotation marks ( '), or double quotation marks ("), and prefixed with X, such as X'F0'.
Bit  is a string of the characters 1 and 0 enclosed in single quotation marks ( '), or double quotation marks (") such
as '11110000'. The maximum length of a bit literal is determined by its context and the maximum allowed indirect
command length.
Figurative Constants in Indirect Commands
Use the following figurative constants in formatting indirect commands:
Valid Figurative Constants
ZERO
ZEROS
ZEROESnumeric value 0 HIGH-VALUE
HIGH-VALUEScharacter value X'FF'
SPACE
SPACESblank (X'40') LOW-VALUE
LOW-VALUEScharacter value X'00'
QUOTE
QUOTESquotation mark (') ALL literal any literal  to fill a field
Conditional Expressions in Indirect Commands
Indirect commands support the following types of expressions:
•Conditional expressions, used with indirect commands IF statements


•Conditional expressions, used with indirect commands IF statements
•Arithmetic expressions, used with indirect commands IF and MOVE statements
Operands in these expressions are one of the following expressions:
•Figurative constants
•Literals
•Variables
Note: Qualified data names and subscripts are also supported.
The following is a list of acceptable relational operators and their meanings.
=
Equal to
< >
Not equal to
<
Less than
 1035


InterTest™ and SymDump ® 11.0
>
Greater than
< =
Less than or equal to
> =
Greater than or equal to
COBOL Variable Syntax
The general syntax for a COBOL variable in InterTest for CICS indirect commands is as follows:
[prog-id:] data-name [IN grp-name][ ({sub-name OR ind-name OR number}[, ...]) ]
or
[prog-id:] data-name [OF grp-name][ ({sub-name OR ind-name OR number}[, ...]) ]
prog-id
Identifies the program-ID of the program to which the variable belongs. If used, the prog-id  must immediately be
followed by a colon (:). If omitted, the default is the main program's program-ID.
data-name
Indicates COBOL data item.
grp-name
Identifies the COBOL identifier of a group item to which the data-name belongs. This clause lets qualification of an
identifier that displays in more than one group.
sub-name
Specifies a COBOL identifier to use as a subscript. This identifier must follow all the COBOL rules for valid
subscripts.
ind-name
Indicates a COBOL index-name.
number
Specifies a positive integer that is used as a valid subscript for a data-name.
NOTE
OR is not part of the command syntax.
Examples:
The following are examples of valid COBOL data-names:
TOTAL-AMT
CUST-NO OF CUST-REC
MONTHLY-BAL (8)
YEARLY-TOT (W-YR, 3, W-DEPT)
 SUBRTN1:ITEM-A
SUBRTN1:ITEM-B IN INP-REC(3, SUB-2, 4, SUB-3)
PL/I Variable Syntax


PL/I Variable Syntax
The general syntax for a PL/I variable in InterTest for CICS indirect commands is as follows:
expression-1 [-> expression-2 ...]
 1036


InterTest™ and SymDump ® 11.0
->
Defines the address for symbol. It indicates that the expression on the left provides the address on which the
the expression on the right is based. If the expression on the left is a PL/I POINTER variable, the contents of the
POINTER variable is use. The -> notation is provided for referencing PL/I BASED variables whose addresses
cannot be resolved at compile time, but are used for referencing any PL/I variable.
expression  is defined as follows:
[procnm:] var-name-1[,var-name-2 ...] [({sub-name OR number}[, ...])]
procnm
Indicates the label of the procedure to which the variable belongs. If used, procnm  must immediately be followed
by a colon (:). If omitted, it defaults to the MAIN procedure name.
var-name
Identifies the PL/I variable name.
sub-name
Defines a PL/I variable name to use as a subscript. This identifier must follow all PL/I rules for valid subscripts.
number
Specifies a positive integer that is a valid subscript for var-name .
NOTE
OR is not part of the command syntax.
Examples
The following are examples of valid PL/I variables:
TOTALAMT
CUSTREC.CUSTNO.PREFIX
MONTHLYBAL (8)
 YEARLYTOT (WYR, 3, WDEPT)
 SUBRTN1:ITEMA
SUBRTN1:INPREC.ITEMB (3, SUB2, 4, SUB3)
Example
PRT1 is a POINTER variable that provides the base address for BASED variable BASEDSTRUCT1.
PRT1 -> BASEDSTRUCT1
Example
PRT1 is a POINTER variable that provides the base address for BASED variable BASEDSTRUCT1. It contains another


POINTER variable, PRT2, which is used as the base address for the BASED variable BASEDSTRUCT2, containing
ITEMA.
PRT1 -> BASEDSTRUCT1.PRT2 -> BASEDSTRUCT2.ITEMA
Example
STRUCTA is not a pointer variable but a structure. The address of STRUCTA is used to map the variable names defined
in STRUCTB.
STRUCTA -> STRUCTB
 1037


InterTest™ and SymDump ® 11.0
Composite Support
Composite support lets you test and debug a subprogram as if it were a separate program. This means you can set
breakpoints and other monitoring options individually for any subprogram. InterTest for CICS provides full symbolic
support for subprograms if you provide the symbolic information when the programs are compiled or assembled.
Follow these steps:
1.Access the Composite Support screen using one of the following ways:
–Program Monitoring Menu.
–Source Listing Facility.
–CNTL Function Selection Menu.
2.Provide the monitoring information online on the Composite Support menu. See Composite Module Testing for more
information about the Composite Support menu.
Composite Support Screen
The Composite Support screen lists link-edit information for the subprograms. The link-edit information is obtained
dynamically using the Binder API, or from a PROTSYM where it was saved by the optional batch job step (IN25LINK).
Subprograms with prefixes CEE, DFH, DFS, ILB, IBM, IGZ and @@ are automatically excluded from the list unless you
specifically name the subprograms in the batch job step. All listed subprograms are automatically selected for monitoring
by default.
The following figure shows the Composite Support screen:
       CA InterTest for CICS  - Composite Support Builder
COMMAND ===>                                                      SCROLL: PAGE
Define composite support for BIGMOD   and press PF5.        Row 00001 of 00004

 * *           *          *        *        *          *
 _ Link name   Monitor    Offset   Length   Language   Comments
 S MAINMOD     BIGMOD        160     78A8   COBOL
 S SUBMODA     ASMMODA      7CA0     1200   ASSEMBLER


S SUBMODB     ASMMODB      8EA0     1001   ASSEMBLER
 S SUBMODC     ASMMODC      9EA1      93A   ASSEMBLER
 _ SUBMODD     ________     A8DB      A11  __________ symbolics not available

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
The Composite Support screen contains the following fields:
Filter
Enables you to specify various criteria to filter the subprograms that are displayed on the Composite Support
screen.
Select All
Enables you to select or deselect all subprograms for testing.
Values:A (selects all subprograms that meet the specified filter criteria), N (deselects all subprograms that meet
the specified filter criteria)
Selection
Indicates whether a subprogram is selected for testing or not.
 1038


InterTest™ and SymDump ® 11.0
Values:S (subprogram is selected), _ (subprogram is not selected).
Link-name
Identifies the name of a COBOL program, Assembler CSECT, or PL/I Control Section as listed in the link-edit
map.
Monitor
Specifies the name under which InterTest for CICS monitors the program.
The following rules apply to monitor names:
•Each monitor name must be unique.
•The monitor name of a subprogram cannot have a PPT entry unless the subprogram is the main subprogram.
•A monitor name can be identical to a link-name.
•If you want symbolic information for a program or subprogram, its monitor name must be identical to the name
used in the post-processor batch job step that provides the symbolic information to InterTest for CICS.
•Use the monitor name *DWARF* to monitor a subprogram with DWARF symbolic data.
Offset
Displays the hexadecimal offset of the program as listed in the link-edit map.
Length
Displays the hexadecimal length of the program as listed in the link-edit map.
Language
Identifies the language in which the program is written. If InterTest for CICS has symbolic information for the
program, it uses the language specified in the post-processor batch job. If InterTest for CICS does not have
symbolic information, it assumes that the subprogram is written in the language specified in the PPT entry of the
composite module.
Comments
Displays optional comments or warnings, which describe symbolic information available for the program:
symbolics not available
InterTest for CICS does not have symbolic information for the program.
symb data after linkedt
The program might have been recompiled or reassembled after the link-edit. Composite support
information might be outdated.


information might be outdated.
Use PF8 and PF7 to scroll forward and backward through the list of programs.
Select Subprograms for Testing
Select only the subprograms that you want to test to reduce overhead. Use the Select All and Selection fields to select the
subprograms that you want to test. Change monitor names of subprograms to meet your testing needs.
Select or Deselect Individual Subprograms
•To select a subprogram, type S in the Selection field next to the subprogram that you want to select.
•To deselect a subprogram, clear the Selection field next to the subprogram that you want to deselect.
Select or Deselect All Subprograms
•To select all subprograms, type A in the Select All field.
•To deselect all subprograms, type N in the Select All field.
 1039


InterTest™ and SymDump ® 11.0
Select or Deselect Subprograms That Meet Specific Criteria
To select subprograms that meet specific criteria, follow these steps:
1.Apply a filter that specifies the desired criteria.
The list of the displayed subprograms changes.
2.Type A in the Select All field.
Only the subprograms that meet the specified criteria get selected.
To deselect subprograms that meet specific criteria, follow these steps:
1.Apply a filter that specifies the desired criteria.
The list of the displayed subprograms changes.
2.Type N in the Select All field.
Only the subprograms that meet the specified criteria get deselected.
NOTE
Selection or deselection does not affect the subprograms that do not match the specified criteria.
Example:
Composite module BIGMOD is displayed on the Composite Support screen in InterTest for CICS. You want to test
SUBMODD, but you do not want to test SUBMODA, SUBMODB, and SUBMODC.
       CA InterTest for CICS  - Composite Support Builder
COMMAND ===>                                                      SCROLL: PAGE
Define composite support for BIGMOD   and press PF5.        Row 00001 of 00004

 * *           *          *        *        *          *
 _ Link name   Monitor    Offset   Length   Language   Comments
 S MAINMOD     BIGMOD        160     78A8   COBOL
 S SUBMODA     ASMMODA      7CA0     1200   ASSEMBLER
 S SUBMODB     ASMMODB      8EA0     1001   ASSEMBLER
 S SUBMODC     ASMMODC      9EA1      93A   ASSEMBLER


_ SUBMODD     ________     A8DB      A11  __________ symbolics not available

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
Follow these steps:
1.Clear the Selection fields for SUBMODA, SUBMODB, and SUBMODC to exclude those subprograms from testing.
2.Provide a monitor name for SUBMODD to test the subprogram separately.
You get the following screen:
       CA InterTest for CICS  - Composite Support Builder
 COMMAND ===>                                                      SCROLL: PAGE
 Define composite support for BIGMOD   and press PF5.        Row 00001 of 00004

 * *           *          *        *        *          *
 _ Link name   Monitor    Offset   Length   Language   Comments
 S MAINMOD     BIGMOD        160     78A8   COBOL
 _ SUBMODA     ASMMODA      7CA0     1200   ASSEMBLER
 1040


InterTest™ and SymDump ® 11.0
 _ SUBMODB     ASMMODB      8EA0     1001   ASSEMBLER
 _ SUBMODC     ASMMODC      9EA1      93A   ASSEMBLER
 S SUBMODD     ASMMODD      A8DB      A11   ASSEMBLER

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
NOTE
Changes made to the Composite Support screen are saved temporarily and remain in effect until the monitoring
of the module is disabled. If you want to monitor the module again, you need to re-enter the changes.
SORT Command - Sort Subprograms
Use the SORT command on the Composite Support screen to sort subprograms by the values in a specific column in an
ascending or descending order.
The command has the following format:
SORT [ columnname | OFFSET ] [ order | A | D ]
columnname
(Optional) Specifies the name of the column that you use as the restrictive criteria for sorting.
Values: LINKNAME, MONITOR, OFFSET, LENGTH, LANGUAGE, COMMENTS
Default:  OFFSET
order
(Optional) Specifies the order that you use for sorting.
Values: ASCENDING, DESCENDING
Default:  ASCENDING
Example:
The following command sorts subprograms by the Length column in a descending order:
SORT LENGTH D
FIND and RFIND Commands - Search for Subprograms
Use the FIND and RFIND commands on the Composite Support screen to search for subprograms in a specific column or
all columns.
The FIND command has the following format:
FIND searchdata [ columnname ]
searchdata
Specifies your search string.
NOTE


FIND searchdata [ columnname ]
searchdata
Specifies your search string.
NOTE
If the string contains spaces, place the string in single quotes.
columnname
(Optional) Specifies the name of the column where you want to perform the search.
Values: LINKNAME, MONITOR, OFFSET, LENGTH, LANGUAGE, COMMENTS
Default:  All columns
 1041


InterTest™ and SymDump ® 11.0
The RFIND command repeats the FIND command and displays the next match.
Example:
The following command searches for string ASMMODA in the Monitor column:
FIND ASMMODA MONITOR
Scroll Commands and Options
Use the scroll commands, the SCROLL field, or PF7 and PF8 keys on the Composite Support screen to navigate in the
list of subprograms.
Scroll Commands
Use the TOP and BOTTOM commands in the command line to navigate to the beginning or end of the subprogram list.
Use the UP and DOWN commands with a number between 1 and 9999 to navigate up and down the list.
Example:
To navigate 5 rows down the list, enter the following command:
DOWN 5
Scroll Options
Use the PF7 and PF8 keys to scroll up and down in the subprogram list. The SCROLL field defines the default number of
rows by which you scroll.
The SCROLL field has one of the following values:
•PAGE
•HALF
Enables you to scroll by half a page.
•CSR
Enables you to scroll to the position of the cursor in the list. If you scroll down, the line indicated by the cursor appears
at the top of the screen. If you scroll up, the line indicated by the cursor appears at the bottom of the screen. If the
cursor is not positioned in the list, you scroll by page.
•1-14
Specifies the number of rows by which you scroll.
Command Line Scroll Options
Enter one of the following values in the command line to override the default number of rows by which you want to scroll,
and press PF7 or PF8:
MAXIMUM
Enables you to scroll to the beginning or end of the subprogram list.
1-9999
Specifies the number of rows by which you scroll.


1-9999
Specifies the number of rows by which you scroll.
Example:
Type 10 in the command line, and press PF8 to scroll 10 rows down in the list of subprograms.
Filter Subprograms
Use the filter fields above each column on the Composite Support screen to filter subprograms. When you apply several
filter values to different columns, only rows that match all values are displayed.
The filter fields support the following wildcards:
 1042


InterTest™ and SymDump ® 11.0
*
Matches 0 or more characters.
%
Matches one character that can be a space.
+
Matches one character that cannot be a space.
To filter subprograms in the Offset and Length columns, you can also use > or < (the greater or less than signs) for
numeric comparisons.
Examples:
The following value entered in the Link name filter field displays rows whose Link name starts with A and ends with 25:
A*25
The following value entered in the Link name filter field displays rows whose Link name has exactly seven characters and
the first five characters are ASBIN:
ASBIN++
The following value entered in the Link name filter field displays rows whose Link name has six or seven characters and
the first five characters are ASBIN:
ASBIN+%
The following value entered in the Offset filter field displays rows with the Offset value greater than 100A:
>100A
Assembler Programs with Multiple CSECTs
Assembler programs may consist of multiple CSECTs that are assembled together as one program. To monitor these
Assembler programs, enter a plus sign (+) in the Monitor field for each CSECT that follows the first CSECT.
Example:
Subprograms ASMA, ASMB, and ASMC are treated as one program. Set breakpoints and other options for all CSECTs
under the name ASMA, which is the monitor name specified for subprogram ASMA.
       CA InterTest for CICS  - Composite Support Builder
 COMMAND ===>                                                      SCROLL: PAGE
 Define composite support for BIGMOD   and press PF5.        Row 00001 of 00004

 * *           *          *        *        *          *
 _ Link name   Monitor    Offset   Length   Language   Comments


_ Link name   Monitor    Offset   Length   Language   Comments
 S ASMLINK     ASMLINK        48     2000   ASSEMBLER
 S ASMA        ASMA         2048      68B   ASSEMBLER
 S ASMB        +            2F98      1BC   ASSEMBLER  Multi-CSECT monitoring
 S ASMC        +            3B00      290   ASSEMBLER  Multi-CSECT monitoring

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
 1043


InterTest™ and SymDump ® 11.0
NOTE
The Composite Support screen might already have plus signs joining Assembler CSECTs. This means the
CSECTs were treated as one program in the post-processor batch job step that provided symbolic information to
InterTest for CICS.
Remove Composite Support
This section describes how to remove composite support from a status report or from the menu.
From a Status Report
To remove composite support, remove monitoring for the composite module.
Follow these steps:
1.Access the Monitoring Status Report (2.4).
2.Scroll to the monitoring entry for the composite module, type R to the left of the entry, and press Enter .
NOTE
Remember, removing monitoring from the composite module also removes monitoring from all subprograms of
the composite module. As a result, all breakpoints and options set for all  subprograms of the composite module
are removed.
From the Menus
To remove composite support from the menus, follow these steps:
1.Access the Program Monitoring menu (2.1).
2.Specify the composite module name, and type  R to the left of the Monitor field. Press Enter  to remove monitoring for
that program.
Set Breakpoints for Duplicate Composite Subprograms
Example
The following example shows how to enable composite monitoring and set unconditional breakpoints for duplicate
subprograms:
Suppose you have two composite load modules: MAINMOD1 and MAINMOD2. Both modules contain a subroutine with
the same name - SUBPROG. You want to set unique breakpoints for subroutine SUBPROG in each module.
Follow these steps:
1.Use LIST=MAINMOD1, type COMPOSITE in the command line, and enable composite monitoring. Repeat step 1 for
MAINMOD2.
2.Change the current program name to SUBPROG.


MAINMOD2.
2.Change the current program name to SUBPROG.
3.Type 24 in the Option # field to access the Program window, change the load module name to MAINMOD1, and press
Enter.
4.Set a breakpoint by typing U in the desired location.
You set an unconditional breakpoint for SUBPROG of MAINMOD1.
5.In the Program window, change the load module name to MAINMOD2, and press Enter.
6.Set a breakpoint by typing U in the desired location.
You set an unconditional breakpoint for SUBPROG of MAINMOD2.
When a source listing breakpoint occurs in a subprogram, the current load module is automatically set to the load module
that owns the subprogram.
 1044


InterTest™ and SymDump ® 11.0
Customize Symbolic Information Using the Batch Method
Customizing symbolic information saves your monitoring configuration for future reuse and is optional. To customize
symbolic information required for testing composite modules, submit a batch job to run IN25LINK.
NOTE
For more information about how to use the IN25LINK program, see Symbolic Support.
The InterTest for CICS batch job step, executed after the composite module is link-edited, reads the link-edit map to
determine the link-name, offset, and length of each subprogram. This step also specifies the names under which InterTest
for CICS monitors each program.
Resume and Execution Options
Control and Resume Execution from a Breakpoint
You can control program execution from a breakpoint in several ways:
•Single-stepping through the execution
•Setting additional breakpoints
•Jumping to another location
•Resume program execution ignoring all breakpoints
Single-step Through Execution
An effective way to debug a program is to reach a breakpoint, add data items whose values you want to track to the Keep
window, and execute a few instructions at a time or single-step through the program to see how the values change.
Set Additional Breakpoints
You also can set additional breakpoints in your program. This means that you do not have to decide in advance which
program paths to execute for the entire test session. Decide at any breakpoint how to continue your test session.
Jump to Another Location
At a breakpoint, continue execution from where the program stopped or from another location to:
•Go around a problem area
•Force execution of bypassed code
•Change the logical flow for testing purposes
Continue Execution
To continue execution from an automatic breakpoint, you must do one of the following:
•Dynamically correct the error. To dynamically modify main storage to correct the error and for instructions on using the
indirect commands facility.


indirect commands facility.
•Set an InterTest for CICS protection option. For more information, see Monitoring Menu Options.
•Go around the error. For details, see Jump to Another Location and Using the Resume Menu. Options 2, 3, and 4 on
the Resume menu offer easy ways to specify where you want to continue execution.
InterTest for CICS lets you control where execution resumes and how much code executes at a time. Resume execution
from where you stopped or from another location; and either single-step through execution or continue until InterTest for
CICS reaches the next breakpoint or the end of the program.
 1045


InterTest™ and SymDump ® 11.0
Press PF5 or specify GO on the command line to continue from the current breakpoint. Execution continues until another
breakpoint occurs or the program ends, whichever comes first.
Single-Step Through Execution
Press PF10  or enter the NEXT command on the command line to single-step through a specific number of verbs,
instructions, or statements. The default is one verb, instruction or statement, but this can be changed by specifying NEXT
value  or pressing PF4 to access the Source Listing Profile screen.
When stopped on a PERFORM or CALL, the NEXT OVER command causes the test session to continue until the lexical
statement following the PERFORM or CALL is encountered, where a breakpoint occurs.
When stopped within a paragraph or subroutine, the NEXT RETURN  command causes the test session to continue until
the session encounters the lexical statement following the PERFORM or CALL that invoked the current paragraph or
subroutine, where a breakpoint occurs. You must have TRACE ON to use NEXT RETURN.
NOTE
When you use PF10  or the NEXT command to single-step through nested COBOL IF statements, it might
appear that InterTest for CICS is not executing one verb at a time. This is a function of how the compiler
generates the object code.
WARNING
To more closely follow the execution of nested IF statements, use the PF9 on the Detailed Breakpoint display to
execute one instruction at a time.
Jump to Another Location
To specify a new location for resuming execution, Specify the GO line-number|label command or do one of the following:
Display the statement or instruction where you want to resume execution.
•Enter g  to the left of the line number in column 1.
•Press PF5 to continue to the next breakpoint or until program execution ends, or press PF10  to single-step execution.


Use this option with caution in COBOL and Assembler programs and optimized code.  Certain uses trigger difficulties in
getting proper addressability.
When an error occurs in a paragraph containing a CICS command, resume program execution at the paragraph-
name rather than at the specific instruction, because some CICS internal processing might have occurred prior to that
command.
In PL/I programs, do not resume execution at a new location if it results in a jump between PROCS/BLOCKS.
Debug Optimized Applications
InterTest for CICS supports the debugging of programs that have been optimized, either by the COBOL compiler's
OPTIMIZE option or by Optimizer/II  or Optimizer/II . However, debugging these programs sometimes results in unexpected
behavior.
NOTE
The PL/I compilers are optimizing compilers.
Often, as part of the optimization process, a compiler will relocate individual instructions, statements, or even entire
paragraphs so that the optimized program will run more efficiently. This means that some or all of the instructions
generated for a given statement may be moved to another statement, or that some or all of the statements in a
paragraph may be moved to another paragraph. When this type of optimization occurs, the resulting object program and
corresponding listing may not accurately represent the relationship between the source statements and their generated
object code, or even between a paragraph label and the statements contained within the paragraph. As a result, there
may be times when the breakpoint intercept does not occur, or when the wrong sequence of statements appears to be
 1046


InterTest™ and SymDump ® 11.0
executed while single-stepping. There may also be times when the debugger appears to highlight the wrong statement at
a breakpoint intercept.
These unexpected displays do not indicate that a program is being executed incorrectly. They indicate that the debugger
sometimes cannot accurately identify which object code corresponds to which source statement, or which statement is
contained within which paragraph.
InterTest for CICS uses the information in the compiler-generated procedure map or offset report to establish the program
offset for each statement and label in the program. During execution, the debugger recognizes the start of the new
statement or label by matching the program offset of the currently executing instruction with the PROTSYM information
obtained from the compiler listing. Therefore, the accuracy with which the debugger represents a breakpoint or other
intercept is only as good as the information in the compiler listing.
Inaccuracies might include, but will not be limited to:
•Incorrect execution when using GO line-number.
•Failure to stop at a breakpoint at a paragraph label or statement.
•Unexpected or out-of-sequence highlighting of statements when single-stepping.
Also, application abends may result from the use of the GO line-number command because the optimized object code
may have register requirements that do not support changes to the flow of control. These commands should be avoided
when debugging an optimized program.
For the best debugging results, avoid using optimization whenever possible in your testing environment. Production
applications may be compiled with optimization, and debugging these applications as they exist without recompiling is
supported. However, you may experience some of the inaccuracies listed previously under these circumstances.
NOTE
For more information about debugging optimized COBOL and the OPTIMIZE option, see COBOL OPTIMIZE
Compiler Option .
Resume Program Execution Ignoring All Breakpoints


Compiler Option .
Resume Program Execution Ignoring All Breakpoints
To continue processing from the current statement ignoring all preset breakpoints and indirect commands until the task
either abends or runs to normal completion, specify the RUN command on the Source Listing Breakpoint Command Line.
The Resume Menu
Option 4 Resume on the Breakpoint Primary Option menu displays the Resume menu. The fast-path command entry to
access the Resume menu from any breakpoint display is =4.
Resume at the Next Instruction
Resume Menu Option 1 Next  Instruction immediately resumes execution at the next instruction. This is the same as using
PF5 Resume on the Breakpoint display. The fast-path entry from the Breakpoint display is =4.1.
Resume Task from a Label
Select Option 2 Label  from the Resume Menu to display the Resume Task From a Label menu. Enter the name of a label
from which to resume execution and press Enter. The program resumes execution from the label you specified.
The fast-path entry to display this menu from a breakpoint is =4.2.
Resume Task from a Statement
Select Option 3 Statement  from the Resume Menu to display the Resume Task From a Statement Number menu. Enter
a statement number from which to resume execution and press Enter . The program resumes execution from the label you
specified.
 1047


InterTest™ and SymDump ® 11.0
The fast-path entry to display this menu from a breakpoint is =4.3.
Resume Task from an Offset
Select Option 4 Offset  from the Resume Menu to display the Resume Task From an Offset menu. Enter a hexadecimal
value of an offset from which to resume execution and press Enter. The program resumes execution from the offset you
specified.
The fast-path entry to display this menu from a breakpoint is =4.4.
Resume Task from an Indirect Command Sequence
Select Option 5 Indirect Commands from the Resume Menu to display the Execute an Indirect Command Sequence
menu. Enter the statement number of an indirect command and press Enter. The program resumes execution with the
indirect command that you specified.
The fast-path entry to display this menu from a breakpoint is =4.5.
Resume Until Next EXEC/CALL
The Resume menu option 6 Next EXEC/CALL  lets you execute until the next EXEC command or external call in your
program. For example, using this option might produce the breakpoint shown in the following illustration, which is stopped
at an external call. The fast-path entry to display this menu from a breakpoint is =4.6.
       CA InterTest for CICS  PROTSYM FILE REQUEST BREAKPOINT
 COMMAND ===>
 Program= COBDEMO  Option #       Stmt #                             Margin= 01
                                         Search=
 OPTS 1 Proc div  2 Work-stor 3 Link sect 4 D-map      5 Clst/Pmap More:   +
      6 Data xref 7 Proc xref 8 Err msgs  9 Srch fwd  10 Srch bwd
 PFKS 1 Help      2           3 Det Bkpt  4 Profile    5 Resume     6 Menu


7 Backward  8 Forward   9 Next Wnd 10 001 Verb  11 Backtrace 12 Status
 ---------------------------------------------------------------------------------
    00912*          ENDEXEC.
  _ 00913      MOVE '  Y      00624   ' TO DFHEIV0
  _   ==>     CALL 'DFHEI1' USING DFHEIV0  TSQNAME TASKSTRUCTURE TSQLEN
  _ 00915     DFHDUMMY TSQITEM.
    00916
    00917
    00918
 .
 .
 .

Resume Task for nnn Steps
Use Option 7 from the Resume Menu to enter the number of steps you want to execute at this time. The fast-path entry to
display this menu from a breakpoint is =4.7.
This option is a one-time execution of the steps you specify and does not change the value of PF 10 on a Breakpoint
display. To set the value for PF 10, use the Source Listing Profile, PF4 from any Source Listing display.
 1048


InterTest™ and SymDump ® 11.0
Resume Task for nnn Machine Instructions
Use Option 8 from the Resume Menu to enter the number of instructions you want to execute at this time. The fast-path
entry to display this menu from a breakpoint is =4.8.
This option is a one-time execution of the steps you specify and does not change the value of PF9 on a Detailed
Breakpoint Display.
Abend the Task
You have the option to abend a task, with or without a dump, at any breakpoint. To abend a task from a breakpoint, follow
these steps:
1.Restore the breakpoint display by pressing Clear . If you are returning from the InterTest for CICS CNTL, CORE, HELP
or FILE facilities, you might need to press Clear repeatedly.
2.Enter ABEND  on the command line and press Enter. InterTest for CICS prompts you to enter an Abend code if you
want a dump.
3.From the Abend menu screen, you have several options:
–Press Clear  to cancel the abend and return to the breakpoint display.
–To abend without a dump:
•To take a normal abend without a dump, accept an abend code of blanks and press Enter.
•To cancel all program exits without a dump, specify the code: XXXX , and press Enter.
–To abend with a dump, specify any four-character dump code except XXXX . Do not specify a code starting with the
letter A.
InterTest for CICS displays a message confirming the abend request and dump code. Follow any online instructions to
complete the abend. After an abend, you return to CICS.
Review Program Status After Execution
When your transaction terminates normally or with an abend, you return to CICS. At this point, review the following items:


•Status of your program source code
•InterTest for CICS monitoring and monitoring options
•Auxiliary files and databases accessed by your program
Your Program Source Code
Your program source code is not modified. It is exactly the same as before you began testing.
Example
If InterTest for CICS detected an ASRA and you used InterTest for CICS to correct the error, the original error still exists in
your code.
If you modified main storage, that change was only temporary. Your program remains unchanged.
The InterTest for CICS copy of your program from the compiled or assembled output also remains unchanged. If you rerun
the transaction, you will see the same display of your program in the Source Listing Facility as you did the first time.
InterTest for CICS Monitoring and Monitoring Options
InterTest for CICS monitoring and monitoring options, which you set before or during testing, remain in effect until you
remove them. These include all breakpoints set before or during program execution that were not removed during the test
session.
 1049


InterTest™ and SymDump ® 11.0
To get a status display of monitoring activity and options in effect for one program, perform these steps:
1.Display the Source for the program.
2.Enter the command STATUS.
To get a status display of monitoring activity and options in effect for all programs, enter the command STATUS ALL.
To get global status display from the Primary Option Menu, perform these steps:
1.Access the Primary Option Menu.
2.Select Option 2 Monitoring .
3.Select Option 4 Status .
NOTE
The fast-path entry for a Monitoring Status Report from CICS is ITST 2.4
Alternatively, enter one of the following commands on a clear screen under CICS:
•For a program:
 CNTL=INQ,PROG=progname

•For multiple programs:
 CNTL=INQ,PROG=(prog1,prog2,prog3)

Example
To display the InterTest for CICS monitoring status for the program COBDEMO, enter the following command under CICS:
 CNTL=INQ,PROG=COBDEMO

Files and Databases
Any files or databases updated by the program are permanently modified unless the No File Updating (NUP) option was
set in advance. The NUP option is set using any Monitoring Menu.
WARNING
File or database changes that you make using the InterTest for CICS FILE facility are permanent, whether or not
the NUP option is set.
Continue to Test
In some testing situations, you might want to re-execute the program without changing the source code. Doing this
means you will see the same automatic breakpoints that you saw the first time. When it is easy to correct or get around
the errors, this method can be the most efficient route to continue testing because you do not have to recompile your


program.
Use the indirect commands facility to continue to test your program without recompiling it.
Correct Your Source Code
When you decide to continue testing from a new version of your program, perform these steps:
1.Modify the program source code (outside InterTest for CICS).
2.Recompile or re-assemble the modified programs using the InterTest for CICS post-processor. For more information,
see Source Listing Facility for InterTest. The InterTest for CICS post-processor automatically updates the InterTest for
CICS Symbolic File and the Source Listing facility with the new version of the program.
 1050


InterTest™ and SymDump ® 11.0
3.Execute the InterTest for CICS New Program Copy option, if desired. This option is on the Program Monitoring menu
(2.1). New Copy performs the following functions:
–Resets the CICS entry in the PPT table to the program's new library address
–Transfers all symbolically set breakpoints and other monitoring options to the recompiled program
NOTE
To recompile your program and keep the same breakpoints in the recompiled version, set breakpoints at
paragraph names or labels, not at lines of executable code. Then use the InterTest for CICS New Program Copy
function to transfer the breakpoints to the recompiled program. If you set breakpoints at lines of executable
code, New Program Copy transfers the breakpoints to the same statement numbers  or offsets in the recompiled
program, which might not be what you want.
Reset Breakpoints after Recompiling or Re-Assembling
If breakpoints were set at executable statements or locations, you might need to adjust their locations after recompiling a
program, as follows:
•To reset the breakpoint locations, adjust the locations one at a time or remove them all and re-enter them.
•To scroll through your program one breakpoint at a time, set the scroll amount to STOP on the Source Listing Profile
screen, accessed by typing PROFILE  or pressing PF4 from a Source Listing display.
•To remove all breakpoints at once for a program that is being monitored with User ID=.ANY, you must first check that
no one else is executing the program before you remove monitoring. Get a Monitoring Status Display for the program.
If no one else is executing the program, remove monitoring or remove all breakpoints directly from the Monitoring
Status report.
WARNING
Use this option with caution! Removing monitoring for a program clears all breakpoints and all monitoring
options.
Monitoring Menu Options


options.
Monitoring Menu Options
The primary task of InterTest for CICS is to monitor programs to detect and prevent errors. When you set monitoring for
a program, InterTest for CICS detects and prevents errors before they occur. That means monitored programs will not
abend or commit storage violations.
This article describes the Monitoring Menu Options (Option 2 on the Primary Option Menu) that let you take advantage of
the full range of InterTest for CICS monitoring capabilities. For example, use the monitoring menus to set monitoring for
programs, all programs executed by a transaction, or all the programs executed from a terminal. Use the menu to invoke
many options for monitoring, such as breakpoints, data monitoring, indirect commands, CICS resource replacement
options, and system-wide options. The monitoring menus also enable you to get a selective Monitoring Status report.
Monitor Status
For more information about how to access and use the Primary Option Menu and Status Report, see Menus and Displays.
Breakpoints
For more information about how to set or remove breakpoints from the Monitoring Menu, see Using Breakpoints.
Data Monitoring
For more information about how to use Data Monitoring, see Breakpoint Activities.
 1051


InterTest™ and SymDump ® 11.0
Indirect Commands
For more information about how to use indirect commands, see Breakpoint Activities.
CNTL Commands
To use the CNTL transaction, alternate menus, and transaction-based commands to specify monitoring options.
Monitoring Menu Functions (ITST 2)
The Monitoring Menu has the following options to perform monitoring-related functions:
•Programs
•Transactions
•Terminals
•Status
•Active tasks
•System-wide
•Debug sessions
Programs
Displays the Program Monitoring screen, which lets you set and remove monitoring, breakpoints, monitoring options, and
monitoring-related functions for one or more programs. Monitoring related functions include the following items:
•Status report to display and remove monitoring and monitoring options for programs, transactions, and terminals
•Setting and removing monitoring, breakpoints, and monitoring options
•Setting and removing statement tracing and data monitoring
•New copy function to reset monitoring for a recompiled program
•Indirect commands to enable inline adjustments to programs without recompiling
•Composite support to provide symbolic support for separately compiled programs brought together when they are link-
edited
Transactions
Displays the Transaction Monitoring screen which lets you set and remove monitoring, and monitoring options for one or
more transactions. Monitoring options for transactions include request breakpoints, statement tracing and data monitoring,
and replace, protect and special options.
Terminals
Displays the Terminal Monitoring screen, which lets you set and remove monitoring and monitoring options for all the
programs executing from a terminal.
Status
Displays the status report (2.4) for all monitoring activity in the current CICS region. Use the status report to quickly
remove a monitoring option or monitoring entry.
Active Tasks
Displays the list of active tasks that are being monitored by InterTest. If the system-wide purge option is turned on, the


Active Tasks screen lets you to purge a task. If you previously disconnected a task from a terminal, the Active Tasks
screen lets you reconnect the task and continue testing.
 1052


InterTest™ and SymDump ® 11.0
System-Wide
Displays the System-Wide Options submenu (2.6), which lets you display and modify monitoring options for the entire
system. These include automatic breakpointing, checkpointing, dumping all abends, global logging, InterTest for CICS
tracing, and breakpointed task purging.
NOTE
Additional monitoring options, specified by CNTL commands, are available to perform more specialized
functions.
Debug Sessions
Displays the monitor logging records of previously recorded debug sessions. Allows you to view, delete, and load
previously recorded debug sessions.
Access
The Monitoring Menu is Option 2  on the Primary Option Menu.
To access the Monitoring Menu from a Source Listing display, perform these steps:
1.Type the command MENU  or press PF6 to access the Primary Option Menu.
2.Select Option 2.
NOTE
The fast-path command entry is =2.
To access the Monitoring Menu from a Source Listing Breakpoint display, type the command MENU  or press PF6 to
access the Breakpoint Primary Option Menu, and then select Option 1.2. The fast-path command entry is =1.2.
PF Keys
Exit any Monitoring Menu by pressing a PF key. The following bullets describe the function of each PF key.
PF1 or 13
Initiates the InterTest for CICS online help facility.
PF2 or 14
Unassigned
PF3 or 15
Terminates the current processing and returns to the previous display.
PF4 or 16
Returns you to the top-level menu, the Primary Option Menu.
PF5 or 17
Unassigned
PF6 or 18
Unassigned
PF7
Scrolls a display list backward towards the top of the list.
PF8
Scrolls a display list forward towards the bottom of the list.


PF8
Scrolls a display list forward towards the bottom of the list.
PF9 to 12 and PF21 to 24
Unassigned
 1053


InterTest™ and SymDump ® 11.0
The User ID Monitoring Option
When you set monitoring, breakpoints or options for a specific program, transaction, or terminal, InterTest for CICS
creates an entry for that program, transaction, or terminal in the monitoring table. For releases after Version 5.3, each
monitoring table entry also includes a user monitoring option. The user option is .ANY or a specific CICS user ID. The
user option indicates for whom the program, transaction, or terminal will be monitored. The following table describes how
the value of the user monitoring option affects monitoring and breakpoints.
User ID = .ANY
Everyone is monitored, regardless of the CICS user ID. Breakpoints are directed to the terminals where they were
set unless a specific option was set to redirect the breakpoints.
User ID = specific CICS user ID
Monitoring occurs only for the specified user based on the CICS user ID. This restricts the monitoring entry to
a single user in a secure CICS system, and lets you move from one terminal to another, preserving breakpoint
settings and options.
Monitor for a User ID
The following status report shows the program COBDEMO, which will be monitored for a single user, MARY01. The
unconditional breakpoint is directed to any terminal where CICS user MARY01 is signed on.
          CA InterTest for CICS  - MONITORING STATUS
  COMMAND ===>

    Type + to expand or   collapse option levels displayed below,
           or R to remove option(s).

      Option     Description                Attributes
  _   COBDEMO    Program monitor entry      COBOL
  _   | MARY01   User monitoring options    Active
        |        Symbolic listing file      PROTSYM


|        Symbolic listing file      PROTSYM
  _     | UBP    Unconditional breakpoint   #1
        |        Option ID                  DD103243
        |        From, to terminals         .ANY, .ANY
  _     | SLB    Source listing breakpoints .ANY

Monitoring with a specific user ID gives you the ability to do the following actions:
•Isolate monitoring and debugging to a specific user, and not all users
•Move from terminal to terminal (or use a multi-session manager) and automatically redirect monitoring options and
breakpoints to your current session, provided the from and to terminals default to .ANY
•Have two users concurrently debug a program, but with different monitoring options
NOTE
You can also set the User ID to .ANY to monitor for any user of the program.
What Is Your User ID Default?
The default user ID appears in the User ID field on the Source Listing Profile display. On the submenus related to
Monitoring (Program Monitoring, Transaction Monitoring, and Terminal Monitoring), issue the USER command.
•If you are working in a CICS region without login security, the user ID value is always set to .ANY
•If you are working in a secure CICS region, the InterTest for CICS installation option DFLTUSER determines whether
the default value assigned to the user ID is .ANY or your CICS user ID
 1054


InterTest™ and SymDump ® 11.0
The following table explains how the default values work when you are and are not signed on to CICS.
DFLTUSER Setting Signed on to CICS Not Signed on to CICS
.ANY By default, everyone is monitored.
Breakpoints are directed to the terminal
where they were set.Everyone is monitored. Breakpoints are
directed to the terminal where they were
set.
specific By default, monitoring applies only to your
user ID and breakpoints are displayed at
whatever terminal you are using.Not recommended, but takes the value of
the default CICS user ID specified by the
Systems Programmer in the CICS startup
JCL. Type USER command to display this
value.
Look up the current DFLTUSER value from the Primary Option Menu (fast-path 7.1.2) by performing these steps:
1.Use option 7 Status/Maintenance.
2.Select Option 1 Product Status.
3.Select Option 2 Global Options
This displays all installation options for IN25OPTS in alphabetic order. The DFLTUSER setting shows the default user ID
setting for your system.
Override the User ID Default
Override the default user ID setting using any of the following methods:
•From the Source Listing Facility, change the user ID on the Profile screen before  you set monitoring or breakpoints
from the Source Listing Display
•From the Monitoring menus, change the user ID on the Program Monitoring (2.1), Transaction Monitoring (2.2), or
Terminal Monitoring (2.3) submenus when you set monitoring, breakpoints, or other options
•When using transaction-based commands, enter the USR= option with any CNTL monitoring command
If you override the default user ID setting before you set monitoring, make sure to use the same user ID when you set


a breakpoint or other monitoring option. Otherwise, the breakpoints or other monitoring options are not attached to the
original monitoring entry. View the Monitoring Status report to check the entries.
Establish a Personal Debugging Session
In a secure CICS region, set the user ID to your own CICS user ID to establish a personal debugging session. When you
set monitoring, specify the program or transaction and specify your own CICS user ID. The monitoring request is then
invoked only when you execute the program. In addition, specify your own CICS user ID when you set breakpoints and
other monitoring options. When you do this, the monitoring request and any breakpoints and options are automatically
directed to any terminal you are signed on to under CICS.
Override the To and From Terminal Defaults for Breakpoints
The From and To terminal values on the Monitoring Status display specify where breakpoints take effect and appear. If
you are monitoring under a specific CICS user ID, the default From and To terminal values are set to .ANY. If you are
monitoring under .ANY user, the default From and To terminal values are set to the terminal where the breakpoints were
set.
If you have special testing needs, set breakpoints that include a From and To terminal value that you specify. To do this,
set your breakpoints using one of these methods:
•Program, Transaction, or Terminal Monitoring menus (2.1, 2.2, or 2.3). For more information, see Using Breakpoints
•CNTL transaction-based commands. For more information, see CNTL Commands and Menus
 1055


InterTest™ and SymDump ® 11.0
Monitoring Submenus
This section describes how to use the Monitoring submenus and screens to perform the following monitoring-related
functions. The order in which the functions are described corresponds to their order on the Monitoring Programs,
Transactions, and Terminals submenus.
Setting and Removing Monitoring
Begin and end monitoring for programs, transactions, or terminals.
Status Display
Display the monitoring status of a program, transaction, or terminal.
Using the New Copy Option
Reset monitoring for a recompiled program.
Setting and Removing Replacement Options
Dynamically change CICS resources (programs, files, transient data queues, temporary storage).
Setting and Removing Protection Options
Bypass InterTest for CICS rules that protect main storage, the CSA, and load modules.
Setting and Removing Special Options
Modify monitoring rules (for example, prevent a program from updating a file, let a program to branch to another
program, limit the number of times a program is monitored).
Setting and Removing Composite Support
Provide symbolic support for a program consisting of separately compiled modules.
Viewing and Setting System-Wide Options
Request and revise monitoring options on a system-wide basis.
Monitor Options for Programs, Transactions and Terminals
From the Monitoring Programs, Monitoring Transactions, and Monitoring Terminals submenus, set the following options
for a monitored program, terminal, or transaction:
Replace
Dynamically replace one or more CICS resources (programs, files, temporary storage, transient data queues)
used by a program.
Protect
Override default protection rules.
Special
Set and remove special monitoring options (such as limiting the number of times a program is monitored or
preventing a program from updating a file).
Composite
Provide symbolic support for programs consisting of separately compiled modules brought together when the
program is link-edited (composite support). Available from the Monitoring Programs submenu only.
Initiate Monitoring


Initiate Monitoring
The InterTest for CICS CNTL transaction performs all monitoring functions. However, InterTest for CICS provides a
number of ways to initiate monitoring and perform other CNTL functions as shown following:
•Source Listing Facility
•Monitoring Menu, Option 2 on the Primary Option Menu
•CNTL menus and fill-in screens
•CNTL commands
 1056


InterTest™ and SymDump ® 11.0
Use one method exclusively, or mix-and-match methods (even during one test session) depending on your specific testing
needs.
Example
Use the Source Listing facility to initiate monitoring and set breakpoints, the Monitoring Menu and screens to set special
options, and a single-line command to resume execution of a task.
The easiest way to turn on monitoring and set breakpoints for a single program is to use the Source Listing facility. For
a new or infrequent user, this method is strongly recommended. Turn on monitoring by pressing a PF key, and set a
breakpoint by entering a single keystroke directly on your program's source listing.
To take advantage of the full range of InterTest for CICS monitoring capabilities, use the Monitoring Menu, which is Option
2 on the Primary Option Menu. Additional submenus guide you through selecting monitoring for programs, terminals, or
transactions, with or without monitoring options.
Online help is available from every screen. Press PF1 from any menu or panel for details on how to use it.
If you prefer, enter single-line CNTL commands to specify monitoring functions. More experienced users often find it faster
to enter commands directly.
When you set breakpoints, replacement, protection, special options, or composite support, you automatically set
monitoring for the programs, transactions, or terminals that you specify. So, for example, it is not necessary to set
monitoring and set breakpoints. Simply setting breakpoints accomplishes both functions.
However, when you remove  breakpoints, replacement, protection, special options, or composite support, you do not
remove monitoring for the programs, transactions, or terminals that you specify. Monitoring remains in effect until you
explicitly instruct InterTest for CICS to remove monitoring.
The Program Monitoring Submenu


explicitly instruct InterTest for CICS to remove monitoring.
The Program Monitoring Submenu
Use the Program Monitoring submenu (2.1) to view, set, or remove monitoring, breakpoints, and monitoring options for
programs. To select an option, enter or modify the Program and User ID field values, and then tab to the desired Option.
Type an S to set the option or an  R to remove the option, and then press Enter to process the function. Press PF1 for field
level help at any time.
Scroll the Options List
The More field on the right side of the display indicates additional options are available. More: + indicates you can scroll
forward to view additional options. More: - indicates you can scroll backward to view additional options. Press PF8 to
scroll forward and view additional options; PF7 to scroll backward and view previous options.
After you process an option that requires an additional screen, when you return to this submenu the option you processed
becomes the first option on the list. Enter the Command TOP to display the Options list from the top. Press PF7 to scroll
backward, PF8 to scroll forward.
NOTE
If a program is stopped at a breakpoint, press PF6 to access the Breakpoint Menu, and then select option 1.2.1
to access the Program Monitoring submenu. Jump to the menu by entering  =1.2.1 in the command line of the
breakpoint display.
Generic Specification of Programs, Transactions, or Terminals
Use the Monitoring submenus or CNTL transaction-based commands to set monitoring or monitoring options generically.
Generic specification in InterTest for CICS lets you specify asterisks, *, and plus signs, +, to replace characters in a
program name, transaction code, or terminal name. These specifications are interpreted according to the rules for the
CICS CEMT transaction, as follows:
 1057


InterTest™ and SymDump ® 11.0
•An asterisk specifies any number of characters, including no characters. Specify more than one asterisk in a program
name, transaction code, or terminal name. However do not specify an asterisk by itself.
•A plus sign specifies one character in a particular position. Specify more than one plus sign in a name or code.
However do not specify a plus sign by itself.
•Combine asterisks and plus signs.
Examples
The following table shows how the generic entry specifications are processed:
ABC*
Specifies all names or codes that begin with ABC, including ABC.
*ABC
Specifies all names or codes that end with ABC, including ABC.
AB*C
Specifies all names or codes that begin with AB and end with C and that could have an unspecified number of
characters in the middle.
ABC+
Specifies all four-character names or codes that begin with ABC followed by any one character.
+ABC
Specifies all four-character names or codes that begin with any character followed by ABC.
AB+C
Specifies all four-character names or codes that begin with AB followed by any one character and C.
AB+C*
Specifies all names or codes that begin with AB followed by one character, C, and an unspecified number of
characters.
Monitor All Programs
InterTest for CICS enables you to establish system-wide monitoring of all applications in the CICS region except for those
with the prefix DFH (IBM CICS programs) or IN25 ( InterTest for CICS programs). Establish system-wide monitoring that
applies to .ANY user in the CICS region or a specific CICS user. Typically, this option is password protected.
Menu Entries
To set monitoring for all programs, enter the following on the Program Monitoring menu (2.1):
Program
.ALL
User ID


Program
.ALL
User ID
.ANY  to apply system-wide monitoring for all users or specific user ID  to apply monitoring to all programs
executed by a specific user.
Type S next to Monitor and press Enter .
Hierarchy Rules for Monitored Entries
It is important to know the priorities InterTest for CICS observes if more than one entry in the Monitoring Table applies to
the same program.
 1058


InterTest™ and SymDump ® 11.0
•A specific or generic program entry overrides a transaction entry, a terminal entry, and an .ALL specification
•A transaction entry overrides a terminal entry and an .ALL specification
•A terminal entry (specific or generic) overrides an .ALL specification
Example
Suppose you specify monitoring options for program ABC1 and different options for transaction TRN1. ABC1 executes
as part of that transaction. When ABC1 executes, the options specified for ABC1 override the options specified for TRN1.
Similarly, it is important to understand the priorities InterTest for CICS observes when a program, transaction, or terminal
is specifically and generically declared for monitoring. A specific entry overrides a generic entry except when you request
Status Display. In that case, the generic specification takes precedence.
Suppose you specify monitoring options for program ABC1 and different monitoring options for program ABC*. The
options specified for ABC* affect all programs whose names begin with ABC except for program ABC1 (and any other
programs beginning with ABC that have their own entries in the Monitoring Table). Monitoring for ABC1 is controlled by
the specific entry for that program. However, if you request a Status Display for program ABC*, you get monitoring status
reports for all programs that begin with ABC, including program ABC1 that has a separate Monitoring Table entry.
Monitoring
Set and remove monitoring for programs, transactions, or terminals directly from the Monitoring Submenus for Program,
Terminals, or Transactions.
Set Monitoring
When you set monitoring for a:
•Program, InterTest for CICS monitors the program from whatever terminal it executes, even if it executes as part of a
non-terminal owning task. Use the replacement, protection, or special options screen if you want to restrict monitoring
to a specific terminal.
•Transaction, InterTest for CICS monitors all of the transaction's programs.


•Transaction, InterTest for CICS monitors all of the transaction's programs.
•Terminal, InterTest for CICS monitors every program that executes at that terminal.
NOTE
InterTest for CICS does not monitor programs that begin with the prefix DFH (IBM CICS programs) or IN25
(InterTest for CICS programs).
If you set monitoring for a transaction or terminal, and a program executing as part of that transaction or at that terminal
is stopped at an automatic breakpoint, InterTest for CICS automatically creates an individual entry in the Monitoring
Table for that program. This lets you set breakpoints and monitoring options specifically for that program. Similarly, if
you specify .ALL in the Program Names field on the Function Selection Menu or if you specify a generic program name,
InterTest for CICS creates an individual Monitoring Table entry for any program monitored under that entry that it stops at
an automatic breakpoint.
Remove Monitoring
When you remove monitoring, you also remove all breakpoints and monitoring options specified for that program,
transaction, or terminal. A quick way of creating a new testing scenario for a program is to remove monitoring and reset it
with different breakpoints and options.
Before you remove monitoring for a program, terminal, or transaction being monitored under .ANY user ID, you might
want to view the status report of all InterTest for CICS monitoring activity to make sure other users are not currently testing
the same programs. Option 2.4 gives a Monitoring Status report of all monitoring activity.
 1059


InterTest™ and SymDump ® 11.0
From the Status Report
From the status report, remove monitoring quickly for any entry. Just locate the monitoring entry, enter r in the field to
the left of the entry, and press Enter . After the request is processed, an asterisk in front of the Monitoring Status entry
indicates the entry was removed. If you press PF2 Refresh, the entry is deleted from the display.
From the Menus
To remove monitoring for programs, transactions, or terminals using the Monitoring submenus, access the appropriate
submenu from the Monitoring Menu, and then enter the program name, transaction code, or terminal name, the user ID
for whom the program is monitored, and R next to the Monitor Option. Press Enter.
NOTE
Remember that you can also set monitoring by setting breakpoints, replacement, protection, special options, or
composite support. However, if you remove breakpoints, options, or composite support, monitoring remains in
effect for the specified programs until you specifically instruct InterTest for CICS to stop monitoring.
Set and Remove Statement Trace Options
NOTE
These options are unrelated to the backtrace facility.
Set and remove statement tracing and data monitoring for programs, transactions or terminals. However, these options
are only valid for COBOL programs and, when specified for a transaction or terminal, will only take affect when a COBOL
program is executed. In addition, if either option is specified for more than one program in a transaction, only one
statement trace table will be allocated for the transaction.
When you set statement tracing for a COBOL program, if a statement trace table was not created for the transaction, it is
created prior to executing the next statement in the program. If a statement trace table exists for the transaction, it will be
used by all programs in the transaction for which statement tracing was specified.


used by all programs in the transaction for which statement tracing was specified.
When you set statement tracing for a transaction, a statement trace table is created prior to executing the next COBOL
statement in the transaction. When you set statement tracing for a terminal, a statement trace table is created for each
transaction that executes a COBOL program at that terminal.
When you set data monitoring for a program, transaction, or terminal, statement tracing is automatically set for that entity.
Unlike statement tracing, however, data monitoring must be restricted to a specific terminal or user ID.
To set or remove statement trace options, access the appropriate Monitoring submenu:
Option Used For Monitoring
2.1 Programs
2.2 Transactions
2.3 Terminals
Set Statement Trace Options
On the Monitoring submenu, enter the program name, transaction code, or terminal name for which the option will be set.
If the option will be set by user ID, specify this. Select the STMT  Trace option, using S, and press Enter. The Statement
Trace Options screen opens.
Specify the following options on the Statement Trace Options screen. The equivalent option used in CNTL transaction-
based commands is specified in parentheses.
Statement tracing (TRC)
Instructs InterTest for CICS to save trace information for every executed COBOL statement.
 1060


InterTest™ and SymDump ® 11.0
Data monitoring (DM)
Instructs InterTest for CICS to capture data values for every executed COBOL statement. If data monitoring is
selected, statement tracing will automatically be activated. In addition, a specific terminal ID or user ID is required.
Term ID (or .ANY or .NO) where trace options will take effect
Specifies that the program be monitored and that statement trace options, if specified, take effect only when the
program is executed at any terminal (.ANY), no terminal (.NO), or a specific terminal.
User ID (or .ANY) who will execute the program
Specifies that the program be monitored and that statement trace options, if specified, take effect only when the
program is executed by any user (.ANY) or a specific user (a CICS user ID).
Once you have specified the required information, press Enter. You are returned to the monitoring submenu where you
selected the Statement Trace option.
Remove Statement Trace Options
This section describes how to remove statement trace options from a status report or from the menu.
From a Status Report
To remove statement tracing, access the Monitoring Status display (2.4), scroll to the monitoring entry for which you
specified the option, and locate the statement trace option. Type r next to the option and press Enter. If data monitoring is
on, it is also removed.
From the Menus
Alternatively, use the same menus and screens you used to set the option, but instead of entering s next to Trace, enter r
next to Trace.
To remove statement tracing, enter R next to the Statement Trace option. If data monitoring is on, it is also removed. To
remove data monitoring without removing statement tracing enter x next to Data monitoring. Enter the terminal ID and
user ID exactly as you originally defined them.
New Copy Option


user ID exactly as you originally defined them.
New Copy Option
After you recompile a program, use the New Copy option on the Program Monitoring menu (2.1) to reset symbolically
specified breakpoints for paragraphs, procedures, or routines. The InterTest New Copy also executes a CICS New Copy
to bring the program into storage. However, if you have breakpoints set by Statement # or Offset and you recompile a
program, you should deactivate monitoring for the program first, use the New Copy option to reload the new program, and
then reset your Statement # or Offset breakpoints. This will insure that your breakpoints are in sync with the new program
version.
NOTE
CNTL=NEW is the equivalent CNTL command for the New Copy monitoring menu option.
Replacement Options
This section explains how to set and remove replacement options. Set replacement options to dynamically change the
names of CICS resources (programs, files, transient data queues, and temporary storage) specified in CICS CALLS by
a monitored program. Remove the replacement options when you want the program to use the resources defined in the
program.
When you specify replacement options for a transaction, the resources are replaced in all of its programs. When you
specify replacement options for a terminal, the resources are replaced in all programs executing from that terminal.
 1061