InterTest™ and SymDump ® 11.0
  WORKING-STORAGE SECTION.
  01 WORKING-STORAGE-AREA.
            05 CONVERSION-AREA.
            10 CONV-DATE      PIC 9(7) VALUE ZERO.
            10 CONV-TIME      PIC 9(6)V999 VALUE ZERO.
            05 SELECTION CRITERIA.
            10 SELECT-START   PIC S9(15)V999 COMP.
            10 SELECT-END     PIC S9(15)V999 COMP.

If you enter the DISPLAY command without operands, it formats and displays all of the previous data items and their data
values.
The command D CONVERSION-AREA would format and display CONVERSION-AREA, CONV-DATE, and CONV-TIME.
The command D SELECT-START would format and display only the data item SELECT-START.
NOTE
If data monitoring was in effect, data item values displayed are those captured at a point in time before th e
COBOL statement, positioned by Prev or Adv command is executed.
If a data item is modified on the other side of a split screen, you can update the Display panel to reflect any changes made
by typing REFRESH  on the command line.
NOTE
The data-item parameter may be a qualified data item, as in the following examples:
COBOL: Use the command D EMPLOYEE-NO IN MASTER-RECORD
to refer to the EMPLOYEE-NO in MASTER-RECORD if
EMPLOYEE-NO is not unique.
PL/I: Use the command D MASTER.RECORD.EMPLOYEE_NO to refer
to the EMPLOYEE_NO in MASTER_RECORD if EMPLOYEE_NO
is not unique.
Use the command D NEXT_ELEM_PTR->ELEMENT to refer to
the allocation of based variable ELEMENT that is pointed to by
NEXT_ELEM_PTR.


the allocation of based variable ELEMENT that is pointed to by
NEXT_ELEM_PTR.
For assembler or PL/I programs, you need a data-item or expression operand.
If you are navigating the trace table and data monitoring was in effect for the currently highlighted statement, the values
displayed for your data items are from the time before that statement was executed.
DROP Command (DROP Symbolic Name)
Use the DROP command to remove the symbolic name for a data item that has been set by the EQUATE command. View
the symbolic names using the LEQ command or set by using the EQUATE command. DROP without operands causes the
Equate panel to be displayed. For more information on the EQUATE command, see Breakpoint Panels.
Syntax
Use the following syntax for DROP:
 DROP <symbolic-name>

You can enter this command in its abbreviated form: DR.
Variables
 692


InterTest™ and SymDump ® 11.0
Use the following variable with the DROP command:
symbolic-name User-defined symbolic name for a data item.
DROPUSE Command (Remove a Using)
The DROPUSE command removes a using that was set with the USING command. This command is only valid when
debugging an assembler program.
Syntax
Use the following syntax for DROPUSE:
 DROPUSE dsect|csect

Variables
Use the following variables with the DROPUSE command:
dsect Assembler DSECT that you wish to map
csect Assembler CSECT that you wish to map
You can enter this command in its abbreviated form: DROPU.
DUMP Command (Terminate Testing with a Dump)
Use the DUMP command to terminate the testing session with a dump. This command only works when the application
being tested has previously abended.
Syntax
Use the following syntax for DUMP:
 DUMP

Usage Notes
To use the DUMP command, you must pre-allocate an MVS dump data set (SYSMDUMP). Allocate the dump data set
from Option 3 (ISPF) - ALLOCATION, of the Primary Option Menu; from ISPF option 6 using the TSO allocate command;
or by pre-allocating a dump data set in the CLIST. The following example is a sample allocation as it appears in a CLIST:
  CONTROL NOMSG
  FREE DD(SYSMDUMP)
  DEL yourdsn
  CONTROL MSG
  ALLOC DD(SYSMDUMP) DSN(yourdsn) NEW SPACE(105) CYL
  UNIT(unitname) VOLUME(volser) CATALOG

Following is a sample dump allocation for Roscoe  users:
 FREE  SYSMDUMP
 DELETEDSN SYSMDUMP


FREE  SYSMDUMP
 DELETEDSN SYSMDUMP
 ALLOC SYSMDUMP dsn=SYSDUMP
 SPACE=(cyl, (50,10))
 DISP=(NEW,catlg)
 VOL=
 693


InterTest™ and SymDump ® 11.0
 UNIT=

You must print SYSMDUMPs using the AMDPRDMP utility.
NOTE
You can also use the DDALLOC command to allocate the SYSMDUMP DD to an existing DSN or a SYSOUT
class.
EQUATE Command (Specify Symbolic Name)
Use the EQUATE command to equate a data item with a symbolic name. You may then refer to the data item by either
the data item or the symbolic name. View the symbolic names using the LEQ command or delete by using the DROP
command. The EQUATE command supports qualified data items. Equate without operands causes the Equate panel to
display. For more information on the EQUATE command, see Breakpoint Panels.
Syntax
Use the following syntax for EQUATE:
 EQUATE <symbolic-name data-item>

You can enter this command in its abbreviated form: EQU.
Variables
Use the following variables with the EQUATE command:
symbolic-name A user-defined symbolic name for a data item
data-item An elementary data item or qualified data item
Data-item can be a qualified data item with 1 or 2 levels of qualification, as described in the following examples:
COBOL: The following command equates NAME-ONE OF EMP-NAME OF
PAYROLL-REC to the symbolic name N1. You may now specify
N1 as the data item for control commands such as LDI and SET.
EQUATE N1 NAME-ONE OF EMP-NAME OF PAYROLL-REC
This variable may also be specified by equating the following:
EQU NO NAME-ONE
EQU EN EMP-NAME
EQU PR PAYROLL-REC
NO OF EN OF PR used as the data item in a control command


NO OF EN OF PR used as the data item in a control command
also refers to NAME-ONE OF EMP-NAME OF PAYROLL-REC.
PL/I: The following command equates
PAYROLL_REC.EMP_NAME.NAME_ONE to the symbolic
name N1. You may now specify N1 as the data item for control
commands such as LDI and SET.
EQUATE N1 PAYROLL_REC.EMP_NAME.NAME-ONE
You may also specify this variable by equating the following:
EQU NO NAME_ONE
EQU EN EMP_NAME
EQU PR PAYROLL_REC
PR.EN.NO used as the data item in a control command also refers
to PAYROLL_REC.EMP_NAME.NAME_ONE.
 694


InterTest™ and SymDump ® 11.0
The data item may be a fixed or variably subscripted data item or indexed data item. The following commands equate a
variably subscripted data item to the symbolic name W1.
COBOL:
 EQ W1 WA-TI-3A(S1,S2,S3)

PL/I:
 EQ W1 WA_TI_3A(S1,S2,S3)

The data item can also be a qualified subscripted or indexed data item, as in the following examples:
COBOL: This command equates the symbolic name W1 to the fourth value
in the non-unique table WA-1A in the unique table WA-TABLE-1:
EQU W1 WA-1A OF WA-TABLE-1(4)
PL/I: This command equates the symbolic name W1 to the fourth value
in the non-unique table WA_1A in the unique table WA_TABLE_1:
EQU W1 WA_TABLE_1.WA-1A(4)
EXSUM Command (Display Execution Summary)
The EXSUM command provides an execution summary display of the current program. The display shows the number of
executable statements, the number of statements currently executed during the test, and the percentage of statements
currently executed during the test.
NOTE
Statements executed when COUNTS OFF is in effect are not counted by the EXSUM command and will not get
included in the summary.
Syntax
Use the following syntax for EXSUM:
 EXSUM

You can enter this command in its abbreviated form: EXS.
The following panel is a sample Execution Summary Display:
 ---------------- CA InterTest Batch Execution Summary Display -----------------

 PROGRAM ID:  INSTST

 Number of executable statements: 21

 Number of statements currently executed during this test: 21


Number of statements currently executed during this test: 21

 Percentage of statements currently executed during this test: 100

NOTE
If COUNTS NOSHOW is in effect, no statements are counted and the Execution Summary Display will show N/A
for Not Applicable for all three counts.
 695


InterTest™ and SymDump ® 11.0
FILES Command (Display COBOL FD Status)
The FILES command displays the File Status panel. The File Status panel indicates whether the data sets in the FD
section are open or closed, and it gives the DSORG and DCB information for the files. For more information on File Status
Panels, see Debugging Panels.
Syntax
Use the following syntax for FILES:
 FILES

You can enter this command in its abbreviated form: FI.
Usage Notes
IMS databases are not supported on this display. This command is not supported for assembler or PL/I programs.
FM Command (Invoke File Master Plus )
The FM command invokes File Master Plus , if you have that product installed. For details on using that product, see the
File Master Plus  documentation.
Syntax
Use the following syntax for FM:
 FM

NOTE
This command is valid for both batch link and foreground testing.
FREQ Command (Controls FREQ Counter)
The frequency command controls the statement frequency counter, but the frequency command and the NOFREQ
command control whether the counters are displayed.
NOTE
The FREQ command is replaced by the COUNTS command, which is described earlier in this section.
Syntax
Use the following syntax for FREQ:
 FREQ <ON|OFF|RESET>

You can enter the FREQ command in its abbreviated form: FR.
Variables
Use the following variables with the FREQ command:
ON Enables frequency counting. This is the default. This command
causes the Intercept panel to shift to the right six characters and
displays one of the following in the left margin:
nnnn A four-digit integer indicating the number of times the statement
has executed. If the counter exceeds 9999, the number is
represented as follows:
 696


InterTest™ and SymDump ® 11.0
nnnK = nnn x 1 thousand (for example, 010K= 10 thousand)
nnnM=nnn x 1 million (for example, 010M= 10 million)
nnnG=nnn x 1 billion (for example, 010G= 10 billion)
If your frequency count has exceeded 9999 and you wish to see
an exact count, issue an I (Info) line command to the left of the
line. The full count is displayed in the upper right-hand corner of
the Intercept panel.
---> This line contains the beginning of a valid statement, but it has not
yet been executed.
Spaces The line number is not the beginning of a statement.
OFF Disables frequency counting.
RESET Zeroes the frequency counters for the currently qualified program.
Usage Notes
When you initially invoke the application, the frequency counter is turned on but is not displayed. To enable the display,
enter the FREQ command without operands. Subsequently, if the FREQ OFF command is issued, the counters are no
longer maintained, but the residual counts remain on the screen. To remove the counters and arrows from the screen,
enter the NOFREQ command.
The status of the frequency command is maintained over sessions.
GO Command (Continue Test Session)
The GO command causes the test session to continue until the next intercept occurs.
Syntax
Use the following syntax for GO:
 GO <Statement-number|paragraph-name|procedure-name|label-name>

Variables
Use the following variables with the GO command:
statement-number Specifies a statement-number in the program where the program
resumes execution.
paragraph-name Specifies a paragraph-name in the program where execution
resumes.
procedure-name Specifies a procedure-name in the PL/I program where execution
resumes.


procedure-name Specifies a procedure-name in the PL/I program where execution
resumes.
label-name Specifies a label-name in the assembler or PL/I program where
execution resumes.
Specify a statement number, paragraph, procedure, or label name as the execution start point. GO with no operands
resumes execution at the next logical statement unless the program was interrupted because of an ABEND. In this case,
the program resumes execution at the statement where the ABEND occurred.
The program executes until one of the following occurs:
 697


InterTest™ and SymDump ® 11.0
•A breakpoint is encountered.
•An ABEND occurs in the program.
•The step count (specified by the STEP command) is exhausted.
•The user interrupts the test by pressing the ATTENTION key.
•The program runs to normal completion.
Usage Notes
When using GO to modify the flow of execution of a COBOL program, be careful to avoid entering a paragraph and
bypassing the PERFORM statement. When you reach the exit to the paragraph, you may receive a USER 519 ABEND
because the references to the calling statement are not defined.
When using GO to modify the flow of execution of a PL/I program, be careful to avoid entering a block (that is, procedure,
BEGIN block, or ON-unit) other than at the start of the block, or exiting a block other than at the END statement for the
block, as it will cause unpredictable results.
GOTO Command (Resumes execution until specified line)
The GOTO line command resumes execution until the specified line.
Syntax
Use the following syntax for GOTO:
GOTO <Statement-number|paragraph-name|procedure-name|label-name>
Variables
Use the following variables with the GOTO command:
statement-number Specifies a statement-number in the program until the program
resumes execution.
paragraph-name Specifies a paragraph-name in the program until execution
resumes.
procedure-name Specifies a procedure-name in the PL/I program until execution
resumes.
label-name Specifies a label-name in the assembler or PL/I program until
execution resumes.
To resume execution to the specified point, specify a statement number, paragraph, procedure, or label name. The
GOTO command overrides the existing unconditional breakpoint on that line. The command honors all breakpoints during
execution.
Usage Notes


execution.
Usage Notes
The GOTO command puts a temporary breakpoint on the specified line and resumes execution. Once the temporary
breakpoint is reached, the temporary breakpoint is removed. If the temporary breakpoint is still active at the time of
intercept, the specified line is denoted as "T". The temporary breakpoints are also displayed on the breakpoint panel.
INCLUDE Command (Execute Application Commands)
The INCLUDE command reads and executes a set of application commands from a partitioned data set.
Syntax
Use the following syntax for INCLUDE:
 INCLUDE member-name

 698


InterTest™ and SymDump ® 11.0
Variables
Use the following variable with the INCLUDE command:
member-name Specifies a valid member name of a partitioned data set (PDS)
allocated to ddname INT1CLIB.
Usage Notes
Before you enter the INCLUDE command, perform an allocation to ddname INT1CLIB. Allocate the partitioned data set
with an LRECL=80 and a RECFM=FB. Create the members using a text editor.
Use the INCLUDE command to execute a set of application commands for regression testing or retesting as code is
modified during testing. For example, use the following commands to test a tax computation routine:
  SET EMPLOYEE-NAME = 'PIERCE, MICHAEL'
  SET EMPLOYEE-NUMBER = 3938
  SET EMPLOYEE-STATE = 'CA'
  WHEN TOOHIGH EMPLOYEE-SALARY GT 50000.00
  AT 0100-CALC-FICA

NOTE
The INCLUDE command ignores all commands in the input stream following a command that causes the
program to resume.
For example, GO or NEXT cause the program to resume execution; DISPLAY or LISTAT cause a transfer of panels. If the
input stream includes these commands, any command following them is ignored.
LDA (or AUTOKEEP) Command (List Data Automatic)
The LDA or AUTOKEEP (list data automatic) command displays in the keep window all the data items referenced by the
current statement.
The keep window appears on the Intercept panel immediately above the first line of the program listing.
Syntax
Use the following syntax for LDA or AUTOKEEP:
 LDA <ON|OFF>

You may enter this command in its abbreviated form: AUTOK.
Variables
Use the following variables with LDA or AUTOKEEP:
ON Enables the automatic list data facility.


Use the following variables with LDA or AUTOKEEP:
ON Enables the automatic list data facility.
OFF Disables the automatic list data facility.
Usage Notes
LDA does not inhibit your ability to use the LDI (KEEP) or LDIX (KEEP HEX) commands to add static entries to the keep
window. While automatically added data items are added and removed at each breakpoint, a static data item continues to
be displayed in the keep window until removed manually.
When AUTOKEEP is in effect for an assembler routine, the operands for the current instruction are added to the keep
window in register notation.
 699


InterTest™ and SymDump ® 11.0
COBOL programs can be compiled with the ARITH(EXTEND) parameter which will allow a numeric field to be greater
than 18 bytes. These fields will be displayed with the message 'TOO BIG TO DISPLAY' in the value. To view or change
the actual value of the field, use the CORE command.
LDI (or KEEP) Command (List Data Item)
The list data item (LDI) command inserts a line that shows the data item and its value before the first line of the program
listing on the Intercept panel. The data item appears on all subsequent Intercept panels until it is reset by the RDI (reset
data item) command.
Syntax
Use the following syntax for LDI or KEEP:
 LDI data-item|expression

NOTE
Data for variables are case-sensitive.
You can enter this command in its abbreviated form: K.
Variables
Use the following variables with LDA or AUTOKEEP:
data-item An elementary data item or group name from the test program.
expression For assembler programs, enter an expression in register notation.
Usage Notes
Modify elementary items from within the keep window. Type over the value displayed on the screen with the new value.
The LDI command supports group level items. To view the members of a data group, specify the group name as the data-
item for the LDI command.
Use the LDI command to view COBOL SPECIAL REGISTERS. For example, this command places the current value of
return code on the Intercept panel:
 LDI RETURN-CODE

The data-item parameter can be a qualified data item, as in the following examples. Specify either 1 or 2 levels of
qualification.
COBOL : Use this command to refer to the EMPLOYEE-NO in the


qualification.
COBOL : Use this command to refer to the EMPLOYEE-NO in the
MASTER-RECORD if the EMPLOYEE-NO is not unique.
LDI EMPLOYEE-NO IN MASTER-RECORD
PL/I: Use this command to refer to the EMPLOYEE_NO in the
MASTER_RECORD if the EMPLOYEE_NO is not unique.
LDI MASTER_RECORD.EMPLOYEE_NO
The data-item parameter can be a fixed or variably subscripted data item or an indexed data item. For example, the
following commands show the use of fixed subscripts:
COBOL:
 LDI WA-TI-3A(1,2,3)

 700


InterTest™ and SymDump ® 11.0
PL/I:
 LDI WA_TI_3A(1,2,3

You can specify also variable subscripts, as follows:
COBOL:
 LDI WA-TI-3A(SUB1,SUB2,SUB3)

PL/I:
 LDI WA_TI_3A(SUB1,SUB2,SUB3)

In this case, the value displayed changes as the subscripted variables change. The values of the subscripts are also
displayed. An * INVALID * message is placed next to any of the subscripts that are out of range.
The data-item can also be a qualified, fixed or variably subscripted data-item, or an indexed data item, as in the following
examples:
COBOL: This command displays the fourth element of the Table WA-1A in
WA-TABLE-1:
LDI WA-1A OF WA-TABLE-1 (4)
PL/I: This command displays the fourth element of the Table WA_1A in
WA_TABLE_1:
LDI WA_TABLE_1.WA_1A (4)
For PL/I programs, the data-item parameter can be a locator qualified based variable. For example, use the following
command to display the allocation of ELEMENT that is based off of NEXT_ELEM_PTR.
 LDI NEXT_ELEM_PTR->ELEMENT

Both the data-item and the locator qualifier can also be qualified and fixed or variably subscripted. Broadcom  supports up
to 15 levels of locator qualification.
COBOL programs can be compiled with the ARITH(EXTEND) parameter which will allow a numeric field to be greater
than 18 bytes. These fields will be displayed with the message 'TOO BIG TO DISPLAY' in the value. To view or change


the actual value of the field, use the CORE command.
Special Registers
Special registers are compiler-generated storage areas whose primary use is to store information produced through one
of COBOL's specific features.
You may display the value of the following special registers in the application:
 RETURN-CODE
 SORT-RETURN
 SORT-FILE-SIZE
 SORT-CORE-SIZE
 SORT-MODE-SIZE
 LABEL-RETURN

For more information regarding these special registers, refer to your IBM VS COBOL for OS/VS  Manual , IBM COBOL II
Application Programming Language Reference Manual, or COBOL/370 Language Reference Manual .
 701


InterTest™ and SymDump ® 11.0
LDX (or KEEPX) Command (List Data Item in Hex)
The list data item in hexadecimal (LDX) command inserts three lines showing the data item and its value before the first
display lines of the program listing on the Intercept panel. The second and third lines display the data representation in
hex format showing zones and numerics, respectively. The data item appears on all following Intercept panels until it is
reset by the RDI (reset data item) command.
Syntax
Use the following variables with LDX or KEEPX:
 LDX data-item

You can enter this command in its abbreviated form: KX..
Variables
Use the following variable with the LDX or KEEPX commands:
data-item An elementary data item or group item from the test program.
Usage Notes
Modify elementary items from within the keep window. Type over the value displayed on the screen with the new value.
Note that you cannot modify the zones and numerics portion of the data display.
The LDX command supports group level items. To view the members of a data group, enter the group name as the data-
item for the LDX command.
Use the LDX command to view COBOL special registers. For example, use the following command:
 LDX RETURN-CODE

The data-item parameter can be a qualified data item, as in the following examples. Specify either 1 or 2 levels of
qualification.
COBOL: Use this command to refer to the EMPLOYEE-NO in the
MASTER-RECORD if the EMPLOYEE-NO is not unique:
LDX EMPLOYEE-NO IN MASTER-RECORD
PL/I: Use this command to refer to the EMPLOYEE_NO in the
MASTER_RECORD if the EMPLOYEE_NO is not unique:
LDX MASTER_REC.EMPLOYEE_NO


MASTER_RECORD if the EMPLOYEE_NO is not unique:
LDX MASTER_REC.EMPLOYEE_NO
The data-item parameter can be a fixed or variably subscripted data item or an indexed data item. For example, the
following commands show the use of fixed subscripts:
COBOL:
 LDX WA-TI-3A(1,2,3)

PL/I:
 LDX WA_TI_3A(1,2,3)

You can specify also variable subscripts, as follows:
COBOL:
 702


InterTest™ and SymDump ® 11.0
 LDX WA-TI-3A(SUB1,SUB2,SUB3)

PL/I:
 LDX WA_TI_3A(SUB1,SUB2,SUB3)

In this case, the value displayed changes as the subscript variables change. The values of the subscripts are also
displayed. An * INVALID * message is placed next to any of the subscripts that are out of range.
The data-item can be a qualified fixed or variably subscripted data item or an indexed data item, as in the following
examples:
COBOL: This command displays the fourth element of the table WA-1A in
WA-TABLE-1:
LDX WA-1A OF WA-TABLE-1 (4)
PL/I: This command displays the fourth element of the table WA_1A in
WA_TABLE_1:
LDX WA_TABLE_1.WA_1A (4)
For PL/I programs, the data-item parameter can be a locator qualified based variable. For example, use the following
command to display the allocation of ELEMENT that is based off of NEXT_ELEM_PTR:
 LDX NEXT_ELEM_PTR->ELEMENT

Both the data-item and the locator qualifier can also be qualified and fixed or variably subscripted. Broadcom  supports up
to 15 levels of locator qualification.
Special Registers
See the previous section, LDI (or KEEP) Command (List Data Item), for a description of the supported special registers.
LEQ Command (List Equated Names)
The LEQ command lists the equated symbolic names and data items set by the EQUATE command. Delete the symbolic
names by using the DROP command.
Syntax
Use the following syntax with LEQ:
 LEQ


Syntax
Use the following syntax with LEQ:
 LEQ

LINKAGE Command (Format the COBOL Linkage Section)
The LINKAGE command displays the Linkage Display panel. Modify the data values on this display.
Syntax
Use the following syntax with LINKAGE:
 LINKAGE   <data-item> <PRINT>

You can enter this command in its abbreviated form: LI.
Variables
 703


InterTest™ and SymDump ® 11.0
Use the following variables with the LINKAGE command:
data-item Causes a display of the data item, any subordinate data items,
and their data values.
PRINT Causes the data displayed by the command to be written in the
session log.
Usage Notes
Consider the following LINKAGE SECTION definition:
 LINKAGE SECTION
 01 PARM-VALUE
     05 PARM-COUNT                PIC S9(4) COMP SYNC.
     05 PARM-DATA
         10 PARM-DATE             PIC X(5).
         10 PARM-TIME.
             15 PARM-HH           PIC XX
             15 PARM-MM           PIC XX
             15 PARM-SS           PIC XX

If you enter the LINKAGE command without operands, it formats and displays all of the preceding data items and their
data values.
The command LI PARM-DATA formats and displays PARM-DATA, PARM-DATE, PARM-TIME, PARM-HH, PARM-MM, and
PARM-SS.
The command LI PARM-SS formats and displays PARM-SS.
WARNING
The LINKAGE command should not be used until the COBOL program has executed the PROCEDURE
DIVISION or ENTRY statement.
The LINKAGE command is not valid for assembler or PL/I programs.
If you are navigating the trace table and data monitoring was in effect for the currently highlighted statement, the values
displayed for your data items are from the time before that statement was executed.
LISTAT Command (List Breakpoints)
The LISTAT command displays the Breakpoint Status panel. This is a listing of the unconditional breakpoints set in the
currently qualified program. You can delete breakpoints from this panel as well by placing an X in the command column of


the line the breakpoint to be deleted is listed on, and pressing enter.
Syntax
Use the following syntax with LISTAT:
 LISTAT

LISTBP Command (List All Breakpoints)
The LISTBP command displays the Breakpoints panel. This is a listing of all conditional (WHEN) and unconditional (AT)
breakpoints set in the application. You may also delete breakpoints from this panel by placing an X in the command
column of the line the breakpoint to be deleted is listed on, and pressing Enter.
Syntax
 704


InterTest™ and SymDump ® 11.0
Use the following syntax with LISTBP:
 LISTBP

You can enter this command in its abbreviated form: LBP.
LISTLBL Command (List Labels)
The LISTLBL command lists the labels that were added with the .label command.
Syntax
Use the following syntax with LISTLBL:
 LISTLBL

LISTUSE Command (List Usings)
The LISTUSE command displays the Using Status panel. This is a listing of all usings set by the USING command. This
command is only valid when debugging an assembler program.
Syntax
Use the following syntax with LISTUSE:
 LISTUSE

You can enter this command in its abbreviated form: LISTU.
LISTWHEN Command (List WHEN Conditions)
The LISTWHEN command displays the When Conditions Display panel. This is a listing of the conditional breakpoints
set in the currently qualified program. It lists both global and local conditional breakpoints. You may delete breakpoints
from this panel as well by placing an X in the command column of the line the breakpoint to be deleted is listed on, and
pressing Enter.
Syntax
Use the following syntax with LISTWHEN:
 LISTWHEN

You can enter this command in its abbreviated form: LISTW.
MAP Command (Region MAP Display)
The MAP command invokes the Region Map Display Panel. This panel lets you display information about programs in
storage. For more information, see Core Option and Map Option.
Syntax
Use the following syntax with MAP:
 MAP

 705


InterTest™ and SymDump ® 11.0
MLOG Command (Record Debugging Session)
Logs and monitors a debugging session so you can save it and reuse the session commands in a future debugging
session.
Syntax
Use the following syntax with MLOG:
 MLOG <START|STOP|CANCEL|DISPLAY|LOAD> <name> <description>

Variables
MLOG START name description
Monitoring commands are recorded for later use in restoring the debug session. The monitoring commands are saved into
INT1CLIB as a member with the name specified.
Name is optional and is 1-8 characters and must be a valid name for a PDS member. If name is not specified the default
name is the name of the loaded program.
Description is optional and is 1-35 characters. This is a comment field where the user can provide a description of the
debug session.
After the MLOG START command is invoked, 'RECORDING' will be displayed in the upper right hand corner for the
screen. This is an indicator that debugging commands are being recorded for use at a later time.
MLOG STOP
Recording of monitor commands is stopped for the user entering the command.
After the MLOG STOP command is issued the RECORDING indicator will be turned off.
MLOG CANCEL
Logging of monitoring commands is turned off for the session and entries recorded since the prior MLOG START
command are deleted.
MLOG DISPLAY
Presents a menu of active and saved debugging sessions in the INT1CLIB file. This is the default if MLOG is specified
with no subcommand.
MLOG LOAD name
Performs a load of a saved debug session from the INT1CLIB library. This command behaves the same as the INCLUDE
command.
NEXT Command (Executing Verbs)


command.
NEXT Command (Executing Verbs)
The NEXT command executes the next verb in the program. You will see the Next Intercept panel after entering NEXT.
Syntax
Use the following syntax with NEXT:
 NEXT <nnn|P|BEFORE|AFTER|?|OVER|RETURN>

You can enter this command in its abbreviated form: N.
Variables
 706


InterTest™ and SymDump ® 11.0
Use the following variables with the NEXT command:
nnn Specifies the number of statements to execute. The default is one.
P Specifies that all statements in the current paragraph that are not
to be skipped will be executed, and execution stops at the next
paragraph.
BEFORE Specifies that when the NEXT command is used, execution stops
before the statements are executed. Note this is the default.
AFTER Specifies that when the NEXT command is used, execution stops
after the statements are executed.
Notes:
If NEXT is set to AFTER, statements that cause execution to leave
the current program, such as GOBACK for COBOL, will have no
effect on the NEXT command.
If data monitoring was in effect, all data item changes are captured
at a point in time before  COBOL statements referencing them are
executed even when NEXT AFTER is set.
? Displays a short message, reporting on whether NEXT stops
before or after the specified number of statements.
OVER Specifies that when the NEXT command is used executes through
a verb, instruction, or statement and return to that line. This is to
avoid breakpoints.
RETURN Specifies that when the NEXT command is used to continue
execution until the next CALL or PERFORM verb. Execution will
stop when it hits a CALL or PERFORM execution.
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 break point occurs.
NOFREQ Command (Remove Frequency Counters)


subroutine, where a break point occurs.
NOFREQ Command (Remove Frequency Counters)
Use the NOFREQ command to remove the frequency counters and arrows from the Intercept panel.
Syntax
Use the following syntax for NOFREQ:
 NOFREQ

NOTE
This is used along with the FREQ command. This command and the FREQ command have been replaced by
the COUNTS command.
OFF (or OFFU) Command (Remove Unconditional Breakpoints)
Use the OFF command to delete unconditional breakpoints set by the AT or UNCOND command, the A or U line
command, the ) line command, the SKIP command, the S line command, or the Breakpoint panel.
If you specify the OFF command with no operands, the Breakpoint panel is displayed.
 707


InterTest™ and SymDump ® 11.0
Delete a breakpoint by specifying OFF with the statement number where the breakpoint is set in the COMMAND field of
the Intercept panel.
Syntax
Use the following syntax for OFF and OFFU:
  OFF <statement-number|paragraph-name|procedure-name|label-name|ENTRY|EXIT|LABEL|DBCALL|ALL ENTRY|ALL EXIT|
ALL LABEL|ALL DBCALL <(subcommand-list)>>

You can enter this command in its abbreviated form: O.
Variables
Use the following variables with the OFF or OFFU commands:
Statement-number A program statement number where an existing breakpoint is
deleted.
Paragraph-name A COBOL paragraph name where an existing breakpoint is
deleted.
Procedure-name A PL/I procedure name where an existing breakpoint is deleted.
Label-name An assembler or PL/I label name where an existing breakpoint is
deleted.
ALL Indicates all unconditional breakpoints be deleted.
ENTRY Deletes the breakpoint set by the ENTRY operand of the AT or
UNCOND command in the currently qualified program.
EXIT Deletes the breakpoint set by the EXIT operand of the AT or
UNCOND command in the currently qualified program.
LABEL Deletes the breakpoint set by the LABEL operand of the AT or
UNCOND command in the currently qualified program.
DBCALL Deletes the breakpoint set by the DBCALL operand of the AT or
UNCOND command in the currently qualified program.
ALL ENTRY Deletes the breakpoints set by the ALL ENTRY operand of the AT
or UNCOND command.
ALL EXIT Deletes the breakpoints set by the ALL EXIT operand of the AT or
UNCOND command.
ALL LABEL Deletes the breakpoints set by the ALL LABEL operand of the AT
or UNCOND command.
ALL DBCALL Deletes the breakpoints set by the ALL DBCALL operand of the
AT or UNCOND command.
Usage Notes


AT or UNCOND command.
Usage Notes
Set a breakpoint by paragraph, procedure, or label name, and delete by the statement number on which the paragraph is
declared and vice versa. For example, consider the following code:
  041400    0000-INITIALIZATION SECTION.
  041500
  041600      MOVE +20 TO VARIABLE-LENGTH-1.
  041700      MOVE +25 TO VARIABLE-LENGTH-2.
  041800      MOVE +30 TO VARIABLE-LENGTH-3.

Set a breakpoint on the first statement of the example by either of the following UNCOND commands:
 708


InterTest™ and SymDump ® 11.0
 UNCOND 41400
     or
 UNCOND 0000-INITIALIZATION

The breakpoint could be removed by either of the following OFF commands:
 OFF 41400
     or
 OFF 0000-INITIALIZATION

OFFWN (or OFFC) Command (Remove Conditional Breakpoints)
Use the OFFWN command to delete conditional breakpoints set by the C, W or V line commands, by the WHEN
command, or in the When panel.
If you specify the OFFWN command with no operands, the When panel displays.
Delete a breakpoint by specifying OFFWN and when-name of the breakpoint to be deleted in the Command field of the
Intercept panel.
Syntax
Use the following syntax for OFFWN and OFFC:
 OFFWN <when-name|ALL>

Variables
Use the following variables with the OFFWN or OFFC commands:
when-name A user-defined unique label specified in the WHEN command and
used by the OFFWN command. When-name may be from one to
eight characters in length. A when-name can also be a statement
number. Variable change breakpoints set by the V line command
generate their own when-names (see the description of the V line
command earlier in this section).
ALL Indicates that all conditional breakpoints should be reset.
POINT Command (Direct PREV and ADVANCE Pointer)
The POINT command causes the PREV and ADVANCE commands to operate from the statement number, paragraph, or
procedure, or label name designated in the POINT command.
Syntax
Use the following syntax for POINT:
 POINT statement-number|paragraph-name|procedure-name|label-name

Enter this command in its abbreviated form: PO.
Variables
 709


InterTest™ and SymDump ® 11.0
Use the following variables with the POINT command:
statement-number A program statement number from which PREV and ADVANCE
are used.
paragraph-name A COBOL paragraph name from which PREV and ADVANCE are
used.
procedure-name A PL/I procedure name from which PREV and ADVANCE are
used.
label-name An assembler or PL/I label name from which PREV and
ADVANCE are used.
Usage Notes
You must turn on the trace facility for the POINT command to function. For example, if the program abended on statement
13100 and you wanted to review the statements that were executed earlier, the POINT command could be used to
establish a statement from which to use the PREV and ADVANCE commands. Suppose a part of the trace table
contained the following:
 13100
 13000
   .
   .
   .
 11000
 10900
 10800
 10700
 10300
 10200
 10100
 09900

If you entered the statement PO 10300 in the command line, ADVANCE would display and highlight 10700, but PREV
would display and highlight 10200.
If data monitoring was in effect when the statement that is highlighted from the POINT command was executed, the
values displayed for your data items are from the time before that statement was executed.
PREV Command (Trace in Reverse)
The PREV command causes the display to scroll to the previously executed statement and highlights it. Use the PREV
command to step backward through the execution of the program.
Syntax
Use the following syntax for PREV:
 PREV <nnn|P nn>

You can enter this command in its abbreviated form: P.
Variables
 710


InterTest™ and SymDump ® 11.0
Use the following variables with the PREV command:
nnn Specifies the number of previously executed statements for the
application to scroll. The default is one.
P Specifies that the previously executed paragraph, procedure, or
label is displayed.
nn Specifies the number of previously executed paragraphs,
procedures, or labels for the application to scroll. The default is
one.
Usage Notes
You must turn on the trace facility for the PREV command to function. You turn on the trace facility by default when you
first invoke the application. For further information on turning the trace facility on and off, see the TRACE command later
in this section.
The PREV command visually displays the flow of execution of the program in reverse. It does not actually reverse the
execution or execute the program in reverse.
The PREV command does not affect the point at which the application resumes execution.
If data monitoring was in effect when the statement that is highlighted from the PREV command was executed, the values
displayed for your data items are from the time before that statement was executed.
PS Command (Print Stream)
The Print Stream (PS) command causes the currently displayed stream to be written to the session log for the current
session.
Syntax
Use the following syntax for PS:
 PS

Usage Notes
The PS command writes the entire stream, not just the portion displayed on the screen. For example, if only the data that
is currently shown on the screen display is needed, Roscoe  users should allocate an INT1PRNT DD data set and use the
PRINT PF Key function. Native TSO users can use this command as well. ISPF users should use the ISPF PRINT facility.
QUALIFY Command (Set Current Program Id)
The QUALIFY command identifies the program to which all subsequent commands apply. This qualification is


The QUALIFY command identifies the program to which all subsequent commands apply. This qualification is
automatically reset by another QUALIFY command, or resulting from the flow of the execution. When testing more than
one program, the listing switches automatically to the qualified program.
Syntax
Use the following syntax for QUALIFY:
 QUALIFY program-id

Variables
 711


InterTest™ and SymDump ® 11.0
Use the following variables with the QUALIFY command:
program-id Specifies the PROTSYM member name of the program to which
the following commands apply.
The program-id of the currently intercepted program is automatically qualified at each program intercept. The qualified
program-id of the program is displayed in the upper left corner of the display.
Usage Notes
The QUALIFY command is useful when you are testing multiple programs. For example, you are testing programs A and
B. The initial breakpoint occurs in A, but you want to set a breakpoint in B. The following command switches the listing file
in the Intercept panel to program B:
 QUALIFY B

Use display commands to find and scroll to the statement where you want to set the breakpoint. Issue the AT command,
and the breakpoint is set in program B. Issue the following commands:
 QUALIFY A
 GO

Your test resumes execution until the breakpoint in program B is encountered.
QUIT Command (Terminate Session)
The QUIT command stops the test session. The Execution Control panel displays so you can do additional testing.
Pressing the END key twice in a row is the same as entering the QUIT command.
Syntax
Use the following syntax for QUIT:
 QUIT

Usage Notes
The QUIT command is the same as END and CANCEL.
The first time you press the END key, the message USE "END" TO TERMINATE appears at the top of the screen. Press
the END key again.
RDI or REMOVE Command (Reset Data Item)
The RDI command removes from the Intercept panel the lines placed there by the LDI (list data item) or the LDX (list data
item in hex) commands, or the L or H line commands, and moves the program listing up.
Syntax
Use the following syntax for RDI or REMOVE:


Syntax
Use the following syntax for RDI or REMOVE:
 RDI   data-item|ALL

You can enter this command in its abbreviated form: RE.
Variables
 712


InterTest™ and SymDump ® 11.0
Use the following variables with the RDI or REMOVE command:
data-item Must be a data item in a LDI command.
ALL Specifies that all LDI items should be deleted from the Intercept
panel.
RECORDS Command (Show COBOL Record Formats)
The RECORDS command displays the COBOL File Section Display panel. The File Section Display panel shows the
record formats under the file descriptions (FDs). You can modify data values on this display.
Syntax
Use the following syntax for RECORDS:
 RECORDS <data-item> <PRINT>

You can enter this command in its abbreviated form: REC.
Variables
Use the following variables with the RECORDS command:
data-item Causes a display of the data item, any subordinate level data
items, and their data values.
PRINT Causes the data displayed by the command to be written in the
session log.
Usage Notes
Consider the following COBOL RECORD definition:
  FILE SECTION.
  FD INPUT-FILE.
       BLOCK CONTAINS 0 RECORDS
       RECORDING MODE IS F.
  01 INPUT-RECORD.
       05 INPUT-NUMBER              PIC X(4).
       05 INPUT-NAME                PIC X(36).
       05 INPUT-SSN.
          10 INPUT-SSN-XXX          PIC X(3).
          10 INPUT-SSN-YY           PIC X(2).
          10 INPUT-SSN-ZZZZ         PIC X(4).

If you enter the RECORDS command without operands, it formats and displays all of the previous data items and their
values.
The command REC INPUT-SSN formats and displays INPUT-SSN, INPUT-SSN-XXX, INPUT-SSN-YY and INPUT-SSN-


ZZZZ.
The command REC INPUT-SSN-ZZZZ formats and displays INPUT-SSN-ZZZZ.
The INPUT-FILE must be open to modify data with the RECORDS command.
The RECORDS command is not valid for assembler or PL/I.
 713


InterTest™ and SymDump ® 11.0
If you are navigating the trace table and data monitoring was in effect for the currently highlighted statement, the values
displayed for your data items will be from the time before that statement was executed.
REFRESH Command
Use the REFRESH subcommand when you have split the screen during test execution, and have used one screen to
change the value of a data item that is currently displayed on the other screen (screen 2).
REFRESH, typed on screen 2, lets the application pick up and display the newly updated value.
Syntax
Use the following syntax for REFRESH:
 REFRESH

REGS Command
The REGS command displays the current application's registers. This command is only valid for assembler programs.
Syntax
Use the following syntax for REGS:
 REGS <ON|OFF|DISPLAY|FLOAT|VECTOR>

You can enter this command in its abbreviated form: REG.
Variables
Use the following variables with the REGS command:
ON Displays the general registers in the Keep window.
OFF Removes the general registers from the Keep window.
DISPLAY Displays a panel where the general registers, their high halfs, and
the access registers are displayed.
FLOAT Displays a panel where the floating point registers are displayed.
VECTOR Displays a panel where vector registers are displayed.
RESET Command
RESET removes column numbers that are displayed on the Intercept or Display panel by the COLUMN command.
Syntax
Use the following syntax for RESET:
 RESET

Usage Notes
The RESET command runs from any panel that has a command line that accepts the COLUMN command.
RESTART Command
The RESTART command re-initiates a batch link job to the beginning of the current step being debugged.
 714


InterTest™ and SymDump ® 11.0
 RESTART

Usage Notes
This command is only valid under batch link. Foreground users should use the QUIT command.
RUN Command (Resume Execution)
The RUN command resumes execution of the program ignoring all breakpoints. The program continues to execute until
normal termination or until it abends. The Execution Control panel displays.
This command removes any capability for further program debugging. The application will not intercept abends.
However, if an optional statement number is passed to the RUN command, when execution from the RUN command hits
that statement, the RUN command is converted into a GO command. This means that existing breakpoints are honored
again.
NOTE
Using the RUN command during a batch link session also issues a SUSPEND command, releasing the terminal.
Syntax
Use the following syntax for RUN:
 RUN <statement-number>

Variables
Use the following variables with the RUN command:
Statement-number A program statement number where the RUN command is
converted to a GO command.
SDWA Command (System Diagnostic Work Area)
The SDWA command displays the System Diagnostic Work Area if a failure occurs. The panel displayed gives the
following information: the SDWA address, the ABEND code, the PSW, the program name, the EP address, the offset, and
the contents of the registers at the time of failure.
Syntax
Use the following syntax for SDWA:
 SDWA

SET Command (Change Data Item Value)
Use the SET command to change the value of a data item.
Syntax
Use the following syntax for SET
 SET data-item <=> value|LOW VALUES|HIGH VALUES|SPACES|ZERO|ZEROES|X'hex char string'

NOTE
Data for variables are case-sensitive.
 715


InterTest™ and SymDump ® 11.0
Use the following variables with the SET command:
data-item A data item in the monitored program or a COBOL special
register. Data-item may be a fixed or variably subscripted data
item or an indexed data item. It may also be a qualified data item.
value The new value of the data item.
LOW-VALUES Indicates that the value of the data item is the figurative COBOL
constant of hexadecimal '00', which is the lowest value in the
computer's collating sequence.
HIGH-VALUES Indicates that the value of the data item is the figurative COBOL
constant of hexadecimal 'FF', which is the highest value in the
computer's collating sequence.
SPACES Indicates that the value of the data item is one or more blanks or
spaces.
ZEROS | ZEROES Indicates that the value of the data item is one or more zeros.
hex-char-string 1 to 20 valid hexadecimal characters. The data is replaced from
left to right.
Usage Notes
Alter data by overtyping on any of the data displays (from DISPLAY, LINKAGE, and RECORDS command). Change
elementary data items using the SET command on the Intercept panel.
 SET EMPLOYEE-ID = '123-45-6789'

This entry sets the data item EMPLOYEE-ID to a value of 123-45-6789. Use this command with the command library
facility to initialize areas of data for testing. See the INCLUDE command described earlier in this section for further
information on the command library facility.
Modify fixed or variably subscripted data items or index data items, that is, table entries, using the SET Command, as in
the following examples:
COBOL: SET WA-TI(4) = 6


the following examples:
COBOL: SET WA-TI(4) = 6
Sets the fourth element in the table WA-T1 to 6.
SET WA-TI2(SUB1,SUB2) = 'S1S2'
Sets an element in WA-T2 depending on the values of SUB1 and
SUB2 to S1S2.
SET WA-T1-1A OF WA-TABLE-1 (2)= 2
Sets the second element of the non-unique table WA-T1-1A in the
unique table WA-TABLE-1 to 2.
PL/I: SET WA_TI(4) = 6
Sets the fourth element in the table WA_T1 to 6.
SET WA_TI2(SUB1,SUB2) = 'S1S2'
Sets an element in WA_T2 depending on the values of SUB1 and
SUB2 to S1S2.
SET WA_TABLE_1.WA_T1_1A(2) = 2
Sets the second element of the non-unique table WA_T1_1A in
the unique table WA_TABLE_1 to 2.
SET WA_TBL_PTR->WA_T1_1A(2) = 2
Sets the second element of the based table WA_T1_1A in the
table allocation pointed to by WA_TBL_PTR.
 716


InterTest™ and SymDump ® 11.0
If you are navigating the trace table and data monitoring was in effect for the currently highlighted statement, the SET
command is not enabled.  You must first issue the CS command to reset the tracing and then issue the SET command.
COBOL programs can be compiled with the ARITH(EXTEND) parameter which will allow a numeric field to be greater
than 18 bytes. The SET command is unavailable to modify fields longer than 18 bytes. The CORE command can be used
to edit these fields.
SKIP Command (Skip a Statement)
The SKIP command causes the statement number specified to be skipped when the program is executed.
The Intercept panel shows an S to the left of any statements that are to be skipped.
Skip is considered an unconditional breakpoint and may be reset using the OFF control command or the O or X line
command.
Syntax
Use the following syntax for SKIP:
 SKIP statement-number

Variables
Use the following variable with the SKIP command:
statement-number Specifies the statement-number in the program that is to be
skipped when the program is executing.
Usage Notes
Skipping a statement causes the execution of that statement to be bypassed entirely, with execution resuming at the verb
or label whose statement number is nearest to and greater than the statement being skipped. In some instances, this
may not result in the required execution path, with execution resuming at a statement that would otherwise not have been
executed.
This can occur when the statement being skipped is any of the following statements:
•The last statement in the program
•The last statement in a PERFORMed paragraph
•Immediately followed by an ELSE statement
WARNING
In those instances that may not result in the required execution path, you should avoid using a SKIP command,
and instead use an unconditional breakpoint with an associated GO command.


and instead use an unconditional breakpoint with an associated GO command.
To set an unconditional breakpoint, type AT on the command line and press Enter. When prompted, enter the statement
number where the breakpoint should occur, which is the statement you wish to skip. Type GO nnnnn  in the Command
field, where nnnnn  is the number of the statement at which execution should resume.
In this example, a SKIP command on statement 917 would cause execution to resume at statement 919, which is not the
required execution path:
           000915             IF A NOT EQUAL ZERO
           000916                  MOVE A TO OPTION-CHOSEN
       S   000917                  PERFORM PROCESS-SELECTION
           000918             ELSE
           000919                  DISPLAY 'ERROR: INVALID SELECTION'
           000920                  MOVE 12 TO RETURN-CODE.
 717


InterTest™ and SymDump ® 11.0
           000921             PERFORM LOG-RESULT.

Instead, use the AT command to force execution to resume at statement 921:
  -------------------- CA InterTest Batch BREAKPOINT PANEL ---------------------
  OPTION ===> S

     S - SET A BREAKPOINT
     R - RESET A BREAKPOINT
     L - OR BLANK, LIST THE BREAKPOINTS

  SPECIFY PROGRAM NAME AND STATEMENT NUMBER:
     PROGRAM NAME ===>
     STATEMENT    ===> 917

     COUNT        ===>          AFTER ===> N  (Y/N)

  COMMANDS TO BE EXECUTED AT BREAKPOINT:
  ===> GO 921

You should also be aware that the use of a SKIP command may result in incorrect results when the program has been
optimized, either by the IBM optimize option or by Optimizer/II  or Optimizer/II . Skipping a statement in an optimized
program may result in the loss of calculations or intermediate results, which may affect future statements.
SLOW (or AUTOSTEP) Command (Slowly Resume Program Execution)
The SLOW command resumes execution of the program one verb at a time and displays the Intercept panel between the
executions of each verb.
Syntax
Use the following syntax for SLOW or AUTOSTEP:
 SLOW     <nnn|FAST>

You can enter this command in its abbreviated form: AUTO.
Variables
Use the following variables with the SLOW command:
nnn Specifies the number of seconds to halt the display between verb
executions. The default is two seconds.
FAST Executes the program without halting between screen refreshes.
Usage Notes
AUTOSTEP (or AUTO) is a synonym for SLOW.


Usage Notes
AUTOSTEP (or AUTO) is a synonym for SLOW.
Interrupt this feature by pressing the Attention key. For information on the Attention key, see Stop a Looping Program in
Guidelines for Novice Users.
Occasionally when you press the Attention key, the program stops and the short message field SUBCOMMAND ABEND
is displayed. If this occurs, issue the NEXT command to refresh the display.
 718


InterTest™ and SymDump ® 11.0
SNAP Command (Produce a SNAP Report)
The SNAP command produces a SymDump  Batch, Optimizer/II , or Optimizer/II  SNAP report, if you have one of these
products initialized. For details on the SNAP report, see the appropriate product's documentation.
Syntax
Use the following syntax for SNAP:
 SNAP

NOTE
Minimum release requirements are SymDump  Batch 2.0, Optimizer/II  3.0, or Optimizer/II  7.0.
SPEED Command (Accelerate Program Testing)
The SPEED command deactivates the trace and frequency facilities.
Syntax
Use the following syntax for SPEED:
 SPEED <ON|OFF>

Variables
Use the following variables with the SPEED command:
ON Turns off trace and frequency counting. Issues the TRACE OFF
and the FREQ OFF commands.
OFF Enables tracing and statement frequency counting. Issues the
TRACE ON and the FREQ ON commands.
Usage Notes
This feature is very useful when testing a large program. It turns off trace and frequency counting and therefore improves
performance. For example, to test a COBOL program with 20,000 PROCEDURE DIVISION statements, set a breakpoint
at statement 15000, and step through the program when you get to that point. The commands to perform this are as
follows:
 AT 15000
 SPEED

When statement 15000 is reached, an Intercept panel is displayed. To step through the program from this point, enter the
following to turn on trace and frequency counting:
 SPEED OFF
 STEP 1

STEP Command (Set Count for GO Command)
The STEP command sets the execution mode to step operation. For each GO command, the specified number of verbs is


executed, and the STEP COUNT Intercept panel is displayed when that number of verbs has executed.
Syntax
 719


InterTest™ and SymDump ® 11.0
Use the following syntax for STEP:
 STEP <nnnn|BEFORE|AFTER>

You can enter this command in its abbreviated form: ST.
Variables
Use the following variable with the STEP command:
nnnn Specifies the number of verbs to be executed each time you
enter a GO command. Setting the STEP count to 0 (zero) turns
off step counting so that the next GO command executes until
a breakpoint is encountered, an abend occurs, or the program
reaches normal termination. The maximum step count that you
can enter is 9999.
BEFORE Specifies that execution should stop before the statement that
satisfies the STEP count. This is the default.
AFTER Specifies that execution should stop after the statement that
satisfies the STEP count.
Notes:
If STEP is set to AFTER, statements that cause execution to leave
the current program, such as GOBACK for COBOL, have no effect
on the STEP count.
If data monitoring was in effect, all data item changes are captured
at a point in time before  COBOL statements referencing them are
executed even when STEP AFTER is set.
NOTE
If no variable is used with the STEP command, the current STEP count and status is displayed in the upper right
hand corner.
SUSPEND Command (Suspend a Batch Link Session)
Use the SUSPEND command to detach a terminal from a batch link debugging session without terminating the session.
Syntax
Use the following syntax for SUSPEND:
 SUSPEND

You can enter this command in its abbreviated form: SUS.
Usage Notes
The SUSPEND command is only valid for batch link debugging sessions and you can only use it from the Monitor Control
or Intercept panels.
A suspended batch link session becomes immediately available for selection from the Batch Link Selection panel.


A suspended batch link session becomes immediately available for selection from the Batch Link Selection panel.
Reconnect a suspended session by the same user or by a different user. Regardless of which user selects the suspended
session, the session is resumed from exactly the same point at which the session was suspended, and continues to use
the same profile member that was defined in the INT1OPTS file.
 720


InterTest™ and SymDump ® 11.0
TRACE SOURCE Command (Trace with Source Code Displayed)
The TRACE SOURCE command functions similar to the TRACE command, but displays the code being traced as well as
the statement number.
Syntax
Use the following syntax for TRACE SOURCE:
 TRACE SOURCE n

You can enter this command in its abbreviated form: TR SO.
Variables
Use the following variables with the TRACE SOURCE command:
n Specifies the maximum number of trace entries to be displayed.
The default is 500.
TRACE Command (Controls Program Trace Entries)
If the TRACE command does not have an operand, it displays the Program Trace Display panel. This panel shows
statement numbers in the order they were executed.
Syntax
Use the following syntax for TRACE:
 TRACE <ON|OFF|n>

You can enter this command in its abbreviated form: TR.
Variables
Use the following variables with the TRACE command:
ON Turns on statement tracing. The number of entries retained is set
by the TRACE(n) parameter in the initialization PARMLIB member.
The default is 500.
OFF Turns off statement tracing.
n Specifies the number of entries to be saved in the trace table
and displayed by the TRACE command. The current trace table
is cleared and reset. This overrides the value specified in the
TRACE(n) initialization PARMLIB member.
Usage Notes
The trace setting is remembered from session to session.
It is possible to view the statements that have been executed in reverse by using the PREVIOUS command, instead of
having to view the trace display.
If data monitoring is in effect for any program in your application, changing the trace table resets the effects of the
DATAMON command.
 721


InterTest™ and SymDump ® 11.0
TRP Command (Trace Paragraphs)
The TRP command invokes the Program Trace Display panel. This panel shows statement numbers and paragraph,
procedure, or label names executed.
Syntax
Use the following syntax for TRP:
 TRP

Usage Notes
The trace facility must be enabled for the TRP command to function.
USING Command (Assign a Register or Address to a DSECT or CSECT)
The USING command lets you assign a register or address for the debugger to use to map a DSECT or CSECT that has
no current using in the program being debugged. This command is only valid when debugging an assembler program.
Syntax
Use the following syntax for USING:
 USING dsect|csect register|address

Variables
Use the following variables with the USING command:
dsect Assembler DSECT that you wish to map
csect Assembler CSECT that you wish to map
register Register that maps the DSECT or CSECT
address Address that maps the DSECT or CSECT
WHEN (or COND) Command (Set Conditional Breakpoints)
The WHEN command sets conditional breakpoints. There are two types of conditional breakpoints and the format of the
command syntax is different for each:
Use this Syntax format For this Type of Conditional Breakpoint
1 Whenever the value of a specified data item changes
2 When a relationship between two data items is true, for example,
'SUBSCRIPT-1 GT 4'
Enter operands in the When panel or in the COMMAND field of the Intercept panel in one of the following formats:
Format 1 This type stops the program's execution any time the value of the
specified data item changes. For example: WHEN whename1
R1498_STATUS.


specified data item changes. For example: WHEN whename1
R1498_STATUS.
Format 2 This type checks a relational expression for a TRUE condition
before intercepting the program. For example:
WHEN whename2 R1498_STATUS GT G
 722


InterTest™ and SymDump ® 11.0
If the when-name  specified is a statement number, the WHEN condition is only tested before executing that statement
number. In this case, the application does not test for the condition before each statement. This local type of conditional
breakpoint reduces computing overhead.
NOTE
•WHEN conditions that are set for subscripted or indexed items are checked only if the subscript or index is
valid.
•If you use the WHEN command without operands, the WHEN panel is displayed. Set, reset, or list conditional
breakpoints from this displayed WHEN panel.
Syntax Format 1 When the value of a specified data Item changes
Syntax
Use the following syntax for WHEN or COND:
  WHEN <when-name data-item-1> <BEFORE|AFTER> <(subcommand-list)>

You can enter this command in one of its abbreviated forms: WH, WN or C.
Variables
Use the following variables with the WHEN or COND commands:
when-name A user-defined unique label or a statement number; if the when-
name is a statement number, the when condition is only checked
before the statement is executed. It is also displayed in the title
line of the W when-name Intercept panel.
data-item-1 The data item is examined before each verb is executed unless
the when-name is a statement number in which case the data item
is only examined before executing that statement (local conditional
breakpoint). Whenever the value of the data item changes, a W
when-name Intercept panel is displayed. Data-item-1 may be a
fixed or variably subscripted, indexed, or qualified data item.
BEFORE Specifies that execution should stop before  the statement when
the condition is met. (That is, the application detected that the
value of the specified data-item  has changed.) This is the default
behavior.


value of the specified data-item  has changed.) This is the default
behavior.
AFTER Specifies that execution should stop after the statement when the
condition is met. (That is, the application detected that the value of
the specified data-item  has changed.)
subcommand-list A list of application commands, separated by semicolons, to be
executed when the breakpoint is encountered during the test. The
subcommand-list is enclosed in parenthesis.
Syntax
Use the following syntax for WHEN or COND:
  WHEN  <when-name <data-item-1 <operator <data-item-2|value> <BEFORE}AFTER>>
         <(subcommand-list)>>>

You can enter this command in one of its abbreviated forms: WH, WN or C
Variables
 723


InterTest™ and SymDump ® 11.0
Use the following variables with the WHEN or COND commands:
data-item-1 Based on the value of the operator, data-item-1 is compared
to data-item-2. Whenever the expression is true, a W when-
name Intercept panel is displayed. Data-item-1 may be a fixed or
variably subscripted, indexed, or qualified data item.
operator A relational operator used to compare data-item-1 to data-item-2.
Values can be any one of the following:
EQ or = Equal to
NE or ?= Not equal to
LE or <= Less than or equal to
GE or >= Greater than or equal to
LT or < Less than
GT or > Greater than
Note: => and =< are not permitted.
data-item-2 Compared to data-item-1. When the comparison is true, a W
when-name Intercept panel is displayed. A value can be used in
place of data-item-2. Data-item-2 may be fixed subscripted, an
indexed data item, or a qualified data item.
value Specifies a constant value, which you can use in place of data-
item-2. This value may be one of the following figurative COBOL
constants: LOW-VALUES, HIGH-VALUES, ZEROS, or SPACES.
This value may also be hex data in the format following:
X'hex-char-string'
where hex-char-string is 1 to 20 valid hexadecimal characters.
BEFORE Specifies that execution should stop before  the statement when
the condition is met. (The specified condition  is TRUE.) This is the
default behavior.
AFTER Specifies that execution should stop after the statement when the
condition is met. (The specified condition  is TRUE.)


condition is met. (The specified condition  is TRUE.)
subcommand-list A list of application commands, separated by semicolons, to be
executed when the breakpoint is encountered during the test. The
subcommand-list is enclosed in parenthesis.
Usage Notes
Global conditional breakpoints (the when-name is not specified using a statement number) are breakpoints whose
conditions are checked before every executed statement and are very resource intensive and may require considerable
overhead. When possible, use local conditional breakpoints (the when-name is specified using a statement number) which
are only checked at the time a particular statement is executed. See the Line Commands section earlier in this article for
information on setting local conditional breakpoints with the line commands C, W, and V.
A before  breakpoint is a breakpoint that stops before  a statement is executed. A before  breakpoint will never stop before
a statement that makes  the condition true. It would only stop before the next statement which follows the statement that
makes the condition true. Thus, a  before  WHEN condition is evaluated before a statement is executed, and if true, the
breakpoint occurs immediately, before that statement is executed.
An after breakpoint is a breakpoint that stops after a statement that makes the condition true. Thus, an after WHEN
condition is evaluated after the statement is executed, and if true, the breakpoint occurs immediately, after the statement
is executed.
 724


InterTest™ and SymDump ® 11.0
* Command (Add Comments in Session Log)
The * command lets you specify a comment to be inserted in the session log. The text following the * is inserted in the
current session log exactly as typed.
Syntax
Use the following syntax for *:
 * text

Variables
Use the following variable with the /clist command:
Text Comment to be inserted in the session log
/clist Command (Execute CAMRCMD)
This product provides a facility for executing a CLIST from within the application. By typing in a slash (/) followed by
a string, the CAMRCMD CLIST is called with a parameter, which is the string that follows the slash. Review CLIST
CAMRCMD for further modification instructions.
Syntax
Use the following syntax for /clist:
 /clist

Variables
Use the following variable with the /clist command:
Clist  The parameter with which the CAMRCMD CLIST is called.
Report Commands
The software provides report commands to create reports that you can print and analyze offline. The reports show path
coverage of program execution and a histogram report displaying the execution frequencies by statement number in
graphic format. Both reports have an execution summary showing the number of executable statements, the number of
statements executed, and the percentage of path coverage.
NOTE
The frequency counter must be on (using the COUNTS command) during testing if any of these reports are to
be produced.
The reports use the ddname INT1REPT. The allocation of INT1REPT can be either to a SYSOUT class or to a disk data
set. Sample allocations are as follows.
Allocation of INT1REPT to a SYSOUT class:
ALLOC DD(INT1REPT) SYSOUT(A)
Allocation of INT1REPT to a disk data set:


Allocation of INT1REPT to a disk data set:
ALLOC DD(INT1REPT) DSN(INT.REPORT) NEW SPACE(2 1) CYL
 725


InterTest™ and SymDump ® 11.0
If the ddname is allocated to a disk data set, the issuance of each report command completely rewrites the data set. If you
would like to obtain both reports, perform the following steps:
1.Allocate the ddname INT1REPT to a data set.
2.Enter the HIST command.
3.Reallocate the INT1REPT to another data set.
4.Enter the XSUM command.
HISTOGRAM Command (Graph Execution Frequencies)
The HISTOGRAM command writes an execution histogram to ddname INT1REPT. The histogram consists of one line
per executable statement. The line contains the statement number, the execution frequency counter, and a graphic
representation of the number of times the statement has been executed.
The final page of the report identifies the number of statements in the program, an indication of the number of statements
that were executed, and the percentage of the statements that were executed during this test.
Syntax
Use the following syntax for HISTOGRAM:
HIST <scale>
You can enter this command in its abbreviated form: HI.
Use the scale parameter to specify the histogram scale to be used. For example, a scale value of 10 would cause one
asterisk to be printed on the histogram for every 10 executions of a statement.
If you do not specify a scale, the application automatically selects a scale in a multiple of five that causes no overflow to
occur.
The histogram produces correct output only if the test was produced with FREQ ON and TRACE ON. A sample histogram
report follows:
1CA InterTest/Batch       Execution Histogram For Program-ID: CAMRCOB2     Date
0
 000875 0001 |*
 000876 0001 |*
 000886 0001 |*


000876 0001 |*
 000886 0001 |*
 000887 0001 |*
 000889 0001 |*
 000890 0001 |*
 000891 0001 |*
 000895 0002 |**
 000896 0002 |**
 000897 ---- |
 000899 0002 |**
 000900 0002 |**
 000901 0001 |*
 000902 0001 |*
 000904 ---- |
 000906 0001 |*
 000908 ---- |
 000909 0002 |**
 000910 0002 |**
 726


InterTest™ and SymDump ® 11.0
 000914 0001 |*
 000915 0001 |*
 000917 0001 |*
 000920 0001 |*
 000921 ---- |
 000923 ---- |
 000925 0001 |*
 000931 0001 |*
 000932 0001 |*
 000933 ---- |
 000934 ---- |
 000935 ---- |
 000938 ---- |
 000945 ---- |
 000946 ---- |
 000953 ---- |
 000954 ---- |
 000957 ---- |
 000958 ---- |
A sample histogram report summary follows:
1CA InterTest/Batch       Execution Histogram For Program-ID: CAMRCOB2      Date
-Session Number: 1,890 For Userid user99
-Number of executable statements: 236
0Number of statements executed during this test: 78
0Percentage of statements executed during this test: 33
XSUM Command (Execution Summary Report)
The XSUM command writes an Execution Summary report to ddname INT1REPT. The summary report consists of the
program listing with the execution frequency counter to the left of each valid executable statement.
The final page of the report identifies the number of executable statements in the program, an indication of the number of
statements that were executed, and the percentage of the statements that were executed during this test.
Syntax
Use the following syntax for XSUM:
SUM <UNEXEC>
Variables
Use the following variable with the XSUM command:
UNEXEC
Specifies that the report should only contain statements that have not been executed.
A sample XSUM report follows:


A sample XSUM report follows:
PP 5740-CB1 RELEASE 2.3   JULY 24, 2014                IBM OS/VS COBOL

 16.20.10  DATE FEB   3,2014

 727


InterTest™ and SymDump ® 11.0
         1                          16.20.10                FEB 3,2014

               100010  IDENTIFICATION DIVISION.
               100020  PROGRAM-ID.  SCRIPT.
               100030  DATE-COMPILED.  FEB 3,2014.
               100050    ENVIRONMENT DIVISION.
               100060    DATA DIVISION.
               100070    WORKING-STORAGE SECTION.
               100080    01  BIN-REC.
               100090     05  BIN1        PIC 9999 VALUE 0.
               100100     05  BIN2        PIC 9999 VALUE 0.
               100110     05  BIN3        PIC 9999 VALUE 0.
               100120     05  BIN4        PIC 9999 VALUE 0.
               100130     05  MOVE-DISP   PIC X(6).
               100140*
               100150    PROCEDURE DIVISION.
               100160*
0001           100170    INITIALIZATION SECTION.
0001           100180        DISPLAY 'PROGRAM STARTING'.
0001           100190    BIN SECTION.
0010           100200    LOOP-MOVE.
0010           100210        IF BIN1 > 8
               100220          OR BIN2 > 346
               100230          OR BIN3 > 77
               100240          OR BIN1 NOT = BIN4
               100250          OR MOVE-DISP = 'INTCOB'
0001           100260             MOVE ZERO TO BIN1
0001           100270             GO TO LOOP-MOVE-END.


0001           100270             GO TO LOOP-MOVE-END.
0009           100280        ADD 1 TO BIN1.
0009           100290        ADD 3 TO BIN2.
0009           100300        ADD 9 TO BIN3.
0009           100310        ADD 1 TO BIN4.
0009           100320        MOVE BIN1 TO MOVE-DISP.
0009           100330        GO TO LOOP-MOVE.
0001           100340    LOOP-MOVE-END.
0001           100350        DISPLAY MOVE-DISP.
0001           100360        MOVE ZERO TO BIN3.
0022           100370    NEXT-LOOP.
0022           100380        IF BIN3 > 20
0001           100390           GO TO NEXT-LOOP-END.
0021           100400        ADD 1 TO BIN3.
0021           100410        GO TO NEXT-LOOP.
0001           100420    NEXT-LOOP-END.
0001           100430        DISPLAY MOVE-DISP.
0001           100440        MOVE ZERO TO BIN2.
0001           100450    LAST-LOOP.
0041           100460        IF BIN2 < 40
0040           100470          ADD 1 TO BIN2
0040           100480          GO TO LAST-LOOP.
0001           100490    LAST-LOOP-END.
0001           100500          DISPLAY BIN2.
0001           100510          DISPLAY 'END OF PROGRAM'.
0001           100520          STOP RUN.
 728


InterTest™ and SymDump ® 11.0
A sample XSUM report summary follows:
CA InterTest Batch       EXECUTION SUMMARY REPORT FOR PROGRAM-ID: SCRIPT

DATE: 02/03/14 TIME: 16:21:07

SESSION NUMBER: 0127 FOR USERID USER01

NUMBER OF EXECUTABLE STATEMENTS: 000032

NUMBER OF STATEMENTS EXECUTED DURING THIS TEST: 000032

PERCENTAGE OF STATEMENTS EXECUTED DURING THIS TEST: 100
A sample XSUM UNEXEC report follows:
                     UNEXECUTED STATEMENTS AND PARAGRAPHS REPORT
 --->  000457                  MOVE 'B' TO R1498-STATUS
 --->  000464                               MOVE 'T' TO R1498-STATUS
 --->  000468                      MOVE 'H' TO R1498-STATUS.
 --->  000478               PERFORM 900-WRITE-ERROR THRU
 --->  000480               GO TO RETURN-TO-OPSYS.
 --->  000497            GOBACK.
 --->  000513                GO TO DEMONSTRATE-SLOW-COMMAND.
 --->  000515                GO TO DEMONSTRATE-CONDITIONAL-BKPT.
 --->  000517                GO TO DEMONSTRATE-SPLIT-SCREEN.
 --->  000519                GO TO DEMONSTRATE-LOOP-DETECTION.
 --->  000521                GO TO DEMONSTRATE-PREV-COMMAND.
 --->  000523                GO TO DEMONSTRATE-PROCESS-TABLE.
 --->  000525                GO TO DEMONSTRATE-HIST-COMMAND.


--->  000525                GO TO DEMONSTRATE-HIST-COMMAND.
 --->  000531        DEMONSTRATE-SLOW-COMMAND.
 --->  000532            MOVE ZERO    TO OPTION-CHOSEN.
 --->  000537        SLOW-COND.
 --->  000538            MOVE SPACES  TO X-AXIS.
 --->  000539            MOVE ZEROES  TO YTD, TOTAL-GROSS.
 --->  000541        PAY-CALC.
 --->  000542            PERFORM POPULATE-GRAPH THRU POPULATE-GRAPH-EX
 --->  000545        PAY-CALC-EX.
 --->  000546            MOVE SPACES      TO CHEQUE-LINE.
 --->  000547            MOVE TOTAL-GROSS TO CHEQUE-AMOUNT.
 --->  000548        PAY-RETURN.
 --->  000549            GO TO OPTIONS.
 --->  000551        POPULATE-GRAPH.
 --->  000552            MOVE MONTH-ITEM(SUB-4)     TO X-AXIS-YTD.
 --->  000553            MOVE TOKEN-ITEM            TO X-AXIS-R(SUB-4).
 --->  000554            ADD  MONTHLY-AMOUNT(SUB-4) TO YTD.
 --->  000555            MOVE YTD                   TO TOTAL-GROSS.
 --->  000556        POPULATE-GRAPH-EX.
 --->  000557            EXIT.
 --->  000558        DEMONSTRATE-CONDITIONAL-BKPT.
 --->  000559            MOVE ZERO    TO OPTION-CHOSEN.
 --->  000561        CONDITIONAL-BREAKPOINT.
 729


InterTest™ and SymDump ® 11.0
 --->  000562            MOVE ZEROES  TO BILL-YTD, SUB-TOTAL.
 --->  000568            PERFORM BILL-CALC THRU BILL-CALC-EX
 --->  000572            MOVE SPACES      TO CHEQUE-LINE.
 --->  000573            MOVE TOTAL-GROSS TO CHEQUE-AMOUNT.
 --->  000574            GO TO OPTIONS.
 --->  000576        BILL-CALC.
 --->  000577            ADD BILLING-AMOUNT(SUB-7) TO SUB-TOTAL.
 --->  000578            MOVE SUB-TOTAL            TO BILL-YTD.
 --->  000579        BILL-CALC-EX.
 --->  000580            EXIT.
 --->  000583        DEMONSTRATE-SPLIT-SCREEN.
 --->  000584            MOVE ZERO    TO OPTION-CHOSEN.
 --->  000589        SPLIT-SCREEN.
 --->  000590            MOVE  R1498-TIMEO TO R1498-TIME.
 --->  000591            GO TO OPTIONS.
 --->  000600        DEMONSTRATE-PREV-COMMAND.
 --->  000601            MOVE ZERO    TO OPTION-CHOSEN.
Session Log Facility (Review Debugging Session)
The application session log facility records and subsequently enables a user to review the activities of a debugging
session.
The session log contains the following:
•An entry identifying the user ID and session number
•Two lines for each program intercept. The first identifies the program and intercept reason code. The second is a copy
of the TRACE line as it appeared on the Intercept panel.
•All input commands


of the TRACE line as it appeared on the Intercept panel.
•All input commands
•Any comments entered by the user using the * command on the Intercept panel during the testing session
•Any WORKING STORAGE SECTION, LINKAGE SECTION, or RECORDS data displayed using the DI, LI, or RE
command with the PRINT option or the P line command
A sample session log with dynamic symbolic support deactivated follows:
*INTERTEST BATCH SESSION #1168 FOR USER USER01  BEGINS AT 12:59:30 ON 09/09/14.
*SYMBOLIC FOR CAMRASM LOADED FROM==> NDVRTS.USER01.PROTSYM
*  INTERCEPT IN PROGRAM CAMRASM  AT #000005 REASON: *INITIAL*
*
AT START
AT GOBACK
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000025 REASON: UNCOND BEFORE
*000025
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000147 REASON: ABEND S0C7
*000147 000145 000144 000142 000141 000140 000139 000137 000136 000135 000134
SET TASKNUM = 0
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000265 REASON: UNCOND BEFORE
 730


InterTest™ and SymDump ® 11.0
*000265 000260 000259 000258 000257 000255 000254 000253 000252 000251 000250
XSUM
GO
A sample session log with dynamic symbolic support activated follows:
*INTERTEST BATCH SESSION #1169 FOR USER USER01  BEGINS AT 13:10:30 ON 03/29/14.
* SYMBOLIC FOR: CAMRASM AUTO POPULATED TO: NDVRTS.USER01.PROTSYM
* SYMBOLIC FOR: CAMRASM LOADED FROM=> NDVRTS.USER01.PROTSYM
*  INTERCEPT IN PROGRAM CAMRASM  AT #000005 REASON: *INITIAL*
*
AT START
AT GOBACK
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000025 REASON: UNCOND BEFORE
*000025
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000147 REASON: ABEND S0C7
*000147 000145 000144 000142 000141 000140 000139 000137 000136 000135 000134
SET TASKNUM = 0
GO

*  INTERCEPT IN PROGRAM CAMRASM  AT #000265 REASON: UNCOND BEFORE
*000265 000260 000259 000258 000257 000255 000254 000253 000252 000251 000250
XSUM
GO
The application session log facility records and subsequently enables a user to review the activities of a debugging
session as shown in the previous panel. The session log may be copied into a member of a partitioned data set and


subsequently edited and used as the subject of an INCLUDE command.
Pre-allocating the ddname INT1CLOG activates the session log. Allocate the log to a disk file or to a SYSOUT class. In
either case, there is no need to specify any DCB information as the application sets it to:
RECFM=FB,LRECL=80,BLKSIZE=6160
Because user ID keeps the session log, each user who wants to use the log facility must have a session log data set. The
data set must be a sequential file. A sample CLIST, INT1CLOG, exists in the CAI.CAVHCLS0 data set to create a sample
session log data set.
Testing Procedures
This section describes how to do the following procedures:
•Prepare a program for testing.
•Identify to the application the program to be tested.
•Start and stop program testing at selected statements.
•Test IMS applications.
•Test DB2 applications.
 731


InterTest™ and SymDump ® 11.0
Guidelines for Novice Users
This section provides an overview and checklist for novice users of the Foreground option. The following sections assist
you in preparing your programs for testing and using the application panels and commands to test your programs. For
detailed information on the application panels used with the Foreground Option, see Debugging Panels, and for detailed
information concerning the commands used with the Foreground Option, see Debugging Commands.
Preparation for Test Execution
Use the following steps to compile a program to be tested under the control of the application and to begin foreground test
execution.
If you are testing an IMS program, first read this section, then read Test IMS Applications. Also, if you are testing a DB2
application, see Test IBM DB2 Applications. If you are testing an application that uses any database, batch link is the
suggested method for debugging.
1.Compile the program that you wish to test using the procedure set up by your installer. This procedure has a post-
compile step that generates the symbolic information needed to debug your program. Alternatively, you can do the
following:
–Add the symbolic information using the Utilities panel if you have the listing available.
–Take advantage of the dynamic symbolic support feature, if you have Endevor  r7 SP2 or later installed.
2.Log in to TSO and enter the TSO command PROFILE WTPMSG. This command causes all messages that normally
appear in the batch job log (write-to-programmer messages) to be sent to the terminal.
If you place the PROFILE WTPMSG in the application CLIST, you will not need to reenter it each time you invoke the
application.
3.Invoke the application (ask you technical support personnel for instructions, if needed).


application.
3.Invoke the application (ask you technical support personnel for instructions, if needed).
If you are testing an IMS or DL/I program, also review the instructions given in the section Testing IMS Applications.
If you are testing under Roscoe , also review the instructions in the section Testing Under Roscoe .
4.When the Primary Option Menu displays, select Option 1: Foreground.
5.Fill in the relevant information on the Execution Control panel. Enter the name of the main program of the application
that you want to debug, the execution parameters, if there are any, and the STEPLIB to be used for this test. If your
execution JCL was converted to ALIB format, you can specify that ALIB data set and member here. Then all the
information, described previously will be extracted from the ALIB file and the DDs that are required for execution will
also be allocated. If you do not have an ALIB for this application, you will need to allocate any required DDs through
the TSO ALLOC command or through Option 3: Allocate off of the Primary Option Menu.
If you are testing an IMS or DL/I program, also review the instructions given in the section Testing IMS Applications.
6.Fill in the name of the program that you wish to debug in the Monitored Programs section of the Monitor Control panel.
The name of the program is the PROTSYM member name for the program to be tested. Also fill in the data set name
of the Symbolic file, the PROTSYM that was used when the program was compiled and post-processed. When all the
information has been filled in, press Enter.
If any of the programs specified on the Monitor Control panel are Visual Age PL/I for OS/390 programs and you
entered a Y in the Monitor PL/I field, the PL/I PROTSYM/Load Module Map panel displays. Fill in the load module


names for any PL/I programs that you want to debug.
If you are using Endevor  to manage your load module and listing libraries, you can activate the dynamic symbolic
support feature (DSS) by designating a PROTSYM file as the receiver for DSS post processor-created symbolic files.
This reduces your pre-testing setup time and ensures you will always debug with the correct symbolic file associated
with the load module being monitored.
The execution of the application begins.
7.If no errors are encountered, the Initial Intercept panel displays. This is a display of the source statements beginning
with the first executable statement. The title line should read *INITIAL* Intercept.
8.The program is ready to execute the application. Enter the GO command in the Command field and press Enter, or
press the PF key set to GO.
The program executes until one of the following conditions is encountered:
 732


InterTest™ and SymDump ® 11.0
–An abend occurs: The Intercept panel is displayed, highlighting the statement where the abend was detected.
–The program runs to normal completion. The Execution Control panel displays with the return code in the upper
right corner indicating that the run has completed.
Execute a Program Until an Error Occurs
When an abend occurs, use application commands to correct the bad data and continue the test.
For example, consider the following COBOL statements:
 041600    MOVE +20       TO VARIABLE-LENGTH-1.
 041700    MOVE FIELD1    TO SALARY-TO-DATE.
 041800    MOVE +30       TO VARIABLE-LENGTH-3.

If FIELD1 contains invalid numeric data such as spaces, an S0C7 occurs when an attempt is made to execute statement
041700. When the S0C7 occurs, the Intercept panel displays: the abend reason code appears on the title line and
statement 041700 is highlighted.
To check the contents of FIELD1, use the DISPLAY command to format and display WORKING STORAGE. To change
the contents of FIELD1, move the cursor under the data displayed at the right of the data item, and key in the new value
for the data item.
Press the END key to return to the Intercept panel. Then issue the GO command to resume the test session.
Stop a Looping Program
Press the Attention key or PA1 key to stop a looping program. This causes the debugger to stop execution at the next
executed statement. The Attention key works for terminals that are attached to the system through an SNA controller. The
PA1 key works for terminals attached to the system using other means. To have the PA1 key work on most terminals, you
must first press the RESET key.


must first press the RESET key.
If you cannot locate the Attention or RESET and PA1 keys, ask your technical support person for assistance.
NOTE
If you are attempting to break from a looping program and the PA1 key does not work, press RESET and then
the PA1 key.
Trace a Program in Reverse
A program can be stepped backward from the point of an abend to determine the cause of the abend condition.
Use the PREV command to trace the program's execution in reverse. The PREV command does not affect the contents of
the application's variables. It also does not change the location where the GO command will resume execution.
To view the statement that has been executed, enter P or PREV in the Command field of the Intercept panel and press
Enter.
Stop a Program at a Particular Statement
Stop a program at selected statements by setting unconditional breakpoints at those statements. From the Intercept
panel, locate the statement where the program will be stopped, then use the U line command or the UNCOND command
to set a "before" unconditional breakpoint that stops before  the statement is executed. You can also use the ) line
command or UNCOND command to set an "after" unconditional breakpoint that stops after the statement is executed. To
access the Intercept panel, review the Preparation for Test Execution section.
For example, consider the following COBOL statements:
 041400  0000-INITIALIZATION SECTION.
 733


InterTest™ and SymDump ® 11.0
 041500
 041600       MOVE +20 TO VARIABLE-LENGTH-1.
 041700       MOVE +25 TO VARIABLE-LENGTH-2.

 041800       MOVE +30 TO VARIABLE-LENGTH-3.

The program is stopped at the first line of this code so that you can examine the value of the VARIABLE-LENGTH
variables used in the next three lines.
Set the breakpoint by typing a U or a ) in the left margin where the breakpoint will be set. In this example, type a U at
statement 41400 and press Enter. Type GO and press Enter.
You can also use the UNCOND command to set the breakpoint. It is especially useful if you want to automatically execute
commands at the breakpoint. Assume that VARIABLE-LENGTH-4 was a data-item that should have been initialized in this
paragraph. The MOVE +45 TO VARIABLE-LENGTH-4 statement was omitted from the program source code. Add the
statement by setting a breakpoint and specifying the SET command on the UNCOND command.
In this example, set the breakpoint using either of the following UNCOND command formats:
 UNCOND 41400 (SET VARIABLE-LENGTH-4 = +45)
     or
 UNCOND 0000-INITIALIZATION (SET VARIABLE-LENGTH-4 = +45)

Press Enter  to set the breakpoint and then issue the GO command to execute the program. When the program begins
execution of statement 041400, the Intercept panel displays. The title line reads BREAKPOINT INTERCEPT and line
041400 is highlighted. The Breakpoint Intercept panel displays before the statement is executed. The assignment of +45
to VARIABLE-LENGTH-4 has been done automatically.
Stop at a Statement and Step by Verb


to VARIABLE-LENGTH-4 has been done automatically.
Stop at a Statement and Step by Verb
Step through a section of code by setting unconditional breakpoints at particular statements and then use the STEP and
GO commands to execute each verb. For example, consider the following statements:
 049400  DIVIDE CONV-YEAR BY 4
 049500      GIVING CONV-LEAP-COUNT
 049600      REMAINDER CONV-LEAP-REMAINDER.
 049700  ADD +1 TO CONV-LEAP-COUNT.
 049800  IF CONV-LEAP-REMAINDER IS EQUAL TO ZERO
 049900      THEN
 050000      SUBTRACT +1 FROM CONV-LEAP-COUNT.
 050100
 050200  IF CONV-DAY IS NOT EQUAL TO ZERO
 050300      THEN
 050400      SUBTRACT +1 FROM CONV-DAY.
 050500
 050600  COMPUTE CONV-TOD =
 050700      (((((((CONV-YEAR * 365) + CONV-LEAP-COUNT + CONV-DAY)
 050800      * 24) + CONV-TIME-HOUR) * 60) * CONV-TIME-MINUTE)
 050900      * 60) + CONV-TIME-SST.
 051000

 734


InterTest™ and SymDump ® 11.0
Assume that one of the IF clauses in the previous example is not functioning as expected. Step through this section of the
code by using the following command sequence:
UNCOND 49400 Sets a breakpoint at statement 049400, the DIVIDE verb.
GO or GO key Executes the program until statement 049400 is reached; then the
Intercept panel displays. The title line reads UNCOND BEFORE
INTERCEPT. Statement 049400 is highlighted.
STEP 1 Executes (or steps) one verb each time you enter the GO
command.
GO or GO key Executes one verb and redisplays the Intercept panel. This occurs
each time you enter GO, until the step count is turned off. This
process lets you monitor the flow of control through the program.
Assume that statement 050600 has been reached and you want to execute the program until this loop is reentered without
entering GO commands for each statement. To reset the program to normal execution, you must turn off the step count
and enter the GO command once more:
STEP 0 Turns off the step count (sets it to zero).
GO or GO key Executes the program normally until statement 049400 is reached
again. The Intercept panel displays, the title line reads UNCOND
BEFORE INTERCEPT. Statement 049400 is highlighted.
NOTE
As an alternative to using the STEP 1 command in conjunction with the GO command, you can use the NEXT
command. This command executes up to the next verb.
Stop a Program When a Subscript Overflows
Many S0C4 abends are caused by a subscript exceeding its expected range (overflowing). This causes unrelated data in
a program to be overlaid or garbled. The application can stop a program when a particular data item contains or exceeds


a value or another data item. This is done by setting a conditional breakpoint using the WHEN command.
For example, assume that subscript SUBS1 is exceeding its range (1 through 30). To stop the program at the statement
where SUBS1 exceeds 30, enter the following command:
 WHEN SUBSCRIP SUBS1 GT 30

This command stops the program when SUBS1 is greater than 30. The character string SUBSCRIP in the command is
the name assigned to the WHEN condition. It is displayed in the title of the W when-name Intercept panel whenever this
condition is encountered; for example, the title of the Intercept panel reads:
 WHEN SUBSCRIP BEFORE INTERCEPT

The when-name identifies which WHEN condition was encountered. The when-name can also be a statement number.
For example, assume that SUBS1 is updated in statement 15200 and that SUBS1 exceeds its range.
Enter the WHEN condition as follows:
 WHEN 15200 SUBS1 GT 30

This way the condition will only be checked when the specified statement number is being executed.
 735


InterTest™ and SymDump ® 11.0
Test IMS Applications
If you are licensed for the IMS Option, you can use the product to test and debug either batch or online IMS applications.
Test the IMS programs with the product the same way as other programs, but remember that the IMS program is not
the first program that is executed when an IMS application is invoked; the IMS program is attached by the IMS Region
Controller (DFSRRC00). This occurs whether the application is a DB/DC application (MPP or BMP) or a DB application
(batch).
Your product interfaces with the IBM BTS (Batch Terminal Simulator) program, which you use to simulate online
applications.
NOTE
•The Region Controller is a module, DFSRRC00. It is not the IMS control region. The IMS control region is an
MVS address space that runs the program DFSRRC00. The application runs in an MVS address space, TSO
that can also run the program DFSRRC00. Neither TSO nor InterTest Batch runs in the IMS Control Region.
•The instructions in this section are for debugging an application under Foreground, Option 1 on the Primary
Option Menu. The suggested method for testing IMS applications is using Option 5, Batch Link. For more
information about batch link, see Batch Link Facility.
•A facility exists for debugging your online IMS application without the use of BTS. For more information about
debugging IMS DC applications, see Batch Link Facility.
IMS Batch Program Testing
The JCL for executing a batch IMS program has an EXEC statement that specifies the module DFSRRC00. The
application program name is specified as a parameter to the DFSRRC00 module. To facilitate testing IMS batch
applications with your product, create a CLIST to allocate IMS and InterTest Batch-related data sets. Ask your technical


support person for assistance in creating the CLIST, if needed.
The CLIST allocations are as follows:
IMS-related:
DFSRESLB  IMS  IEFRDER  DFSVSAMP
NOTE
On the ddname DFSRESLB, the IMS RESLIB data set is concatenated to itself. This is necessary to
prevent a dynamic allocation to the ddname. If the IMS RESLIB data set is not concatenated to itself
under the ddname DFSRESLB, USER 0684 abends and other unpredictable user abends can occur.
InterTest Batch-related:
INT1PARM  INT1LOAD  INT1PNNL  INT1PROF  INT1MSGL INT1CLOG INT1CLIB INT1REPT
NOTE
For additional information about InterTest Batch-related CLISTS, see Basic Foreground Demo Session.
Preparation for Test Execution - Batch Programs
Replace Step 5 in the section Preparation for Testing Execution with the following information:
•On the Execution Control panel, specify the name of the IMS RESLIB data set as the load library.
•The first program to be executed is always DFSRRC00.
•The execution parameters are the same as the parameters used in a batch execution.
Generally, the execution parameters are DLI,membername,psbname. If the application program module name and the
psbname are the same, you do not need to specify the psbname parameter.
 736


InterTest™ and SymDump ® 11.0
•The application requires a STEPLIB DD statement that identifies the load library containing the application program to
be executed.
•You must also ALLOCATE the data bases that are used by the IMS program that will be tested.
The application generates a dynamic STEPLIB DD statement from the data set names that are listed under the STEPLIB
portion of the Execution Control panel. For more information about dynamic STEPLIB facility in Execution Control Panel,
see Debugging Panels.
Use the Monitor Control panel to identify the programs that have their execution controlled by the application. Identify
only the programs that you want to debug with the application. Also, provide the PROTSYM files that contain the symbolic
information for the programs that you would like to debug.
Example:
In this example assume that you have two driver modules to debug and test: DLIPGM1 and DLIPGM2. DLIPGM1 calls
five subprograms: SUBPGM1, SUBPGM2, SUBPGM3, SUBPGMA, and SUBPGMB. DLIPGM2 calls SUBPGMA and
SUBPGMB. SUBPGMA and SUBPGMB do not need to be debugged. In this run, they are executed, but not symbolically
debugged. Thus, their names do not need to be included on the Monitor Control panel.
  ---------------- CA InterTest Batch MONITOR CONTROL Panel ---------------------
  COMMAND ===>
                                                      Monitor PL/I ==> N
  --------------------Monitored Programs -----------------------------

  ==> DLIPGM1    ==> SUBPGM1     ==> SUBPGM2     ==> SUBPGM3 ==> DLIPGM2
  ==>            ==>             ==>             ==>         ==>
  ==>            ==>             ==>             ==>         ==>
  ==>            ==>             ==>             ==>         ==>


==>            ==>             ==>             ==>         ==>
  ==>            ==>             ==>             ==>         ==>
  ==>            ==>             ==>             ==>         ==>

  ----------Symbolic (PROTYSM) Files ----------------Endevor Auto Populate
                                                        -----------------
  ==> 'USER01.PROTSYM'                           ==> Y  |Always         |
  ==>                                            ==>    |Auto-Populate  |
  ==>                                            ==>    |Non-LE-Enabled |
  ==>                                            ==>    |Assembler?     |
  ==>                                            ==>    |==> Y (Y/N)    |
  ==>                                            ==>    -----------------
  ==>                                            ==>

Batch Procedures for BMP Testing
BMPs are batch IMS programs that run under the control of an online IMS control region. The job is executed in an IMS
BMP region. The BMP accesses databases that are allocated to IMS. Thus, the CLIST you use to invoke the application
will not include allocation statements for the databases.
If you need assistance in creating the CLIST, ask your technical support person.
NOTE
If you prematurely end your test session with an END, CANCEL, or QUIT command when testing BMPs, the
BMP region does not know the testing session is ending. The BMP region can abend with an S13E.
The following screen shows you an example of an Execution Control panel for IMS BMP testing:
 737