Previous Topic: Line CommandsNext Topic: Testing Procedures


Control Commands

Control commands control the test session. Enter them on the command line of the Intercept panel. Enter multiple control commands on the command line by separating each command with a semicolon (;).

Assembler Indirect Addressing Note: Some control commands can accept an expression in register notation when debugging an assembler program. The format of an expression is as follows:

<base <suffix>> <<offset<suffix>>...>

Operands

Description

base

hexadecimal address, or
register number (that is, R1 for general register 1), or
a data name

suffix

% for indirect addressing in 24 bit mode
? for indirect addressing in 31 bit mode
! for indirect addressing in 64 bit mode

offset

plus (+) or minus (-) a hexadecimal value up to 4 characters long

Note: When starting an expression with a hexadecimal address, it must start with a plus (+) sign.

The following table shows a list of control commands available when using your product:

Command

Definition

ADVANCE

Follows the trace pointers forward.

AT

Sets an unconditional breakpoint (same as UNCOND).

CORE

Displays memory for the debugging region.

COUNTS

Enables frequency counting, reset counters, display counters.

CS

Highlights the current statement.

DATAMON

Enables the data monitoring feature.

DDALLOC

Allocates a DD.

DDFREE

Frees a DD.

DDQ

Queries a DD.

DISPLAY

Formats a data item or the COBOL Working Storage section.

DROP

Drops the symbolic name.

DROPUSE

Removes a using that was set with the USING command.

DUMP

Terminates testing with a dump.

EQUATE

Specifies symbolic name.

EXSUM

Provides the execution summary display.

FILES

Displays COBOL FD status.

FM

Starts CA File Master Plus.

FREQ

Controls verb execution counts.

GO

Resumes execution of the application.

INCLUDE

Executes a set of application commands.

LDA (or AUTOKEEP)

Displays all data items referenced by the current statement.

LDI (or KEEP)

Lists data item.

LDX (or KEEPX)

Lists data item in hexadecimal.

LEQ

Lists equated symbolic names.

LINKAGE

Formats the COBOL LINKAGE section.

LISTAT

Lists breakpoints.

LISTBP

Displays the BREAKPOINT panel.

LISTLBL

Lists labels added with the .label command.

LISTUSE

Displays the USING STATUS panel.

LISTWHEN

Lists WHEN conditions.

MAP

Invokes the Region Map Display panel.

NEXT

Executes the next n verbs.

NOFREQ

Removes frequency counters.

OFF (or OFFU)

Removes unconditional breakpoints.

OFFWN (OFFC)

Deletes conditional breakpoints.

POINT

Directs PREVIOUS and ADVANCE pointer.

PREV

Follows trace pointers in reverse.

PS

Prints stream to session log.

QUALIFY

Sets current program id.

QUIT

Terminates the test session.

RDI

Resets data item (or REMOVE).

RECORDS

Formats data in the COBOL FILE section.

REFRESH

Displays updated split screen values.

REGS

Displays registers for assembler programs.

RESET

Removes column numbers from display.

RESTART

Restarts a batch link debugging step.

RUN

Removes breakpoints and execute.

SDWA

Displays the system diagnostic work area.

SET

Changes value of a data item.

SKIP

Skips a statement.

SLOW

Observes execution a verb at a time.

SNAP

Produces a CA Optimizer, CA Optimizer/II, or CA SymDump Batch SNAP report.

SPEED

Accelerates program testing.

STEP

Sets count for GO command.

SUSPEND

Detaches a terminal from a batch link debugging session without terminating the session.

TRACE

Controls/displays program trace entries.

TRACE SOURCE

Controls/displays program trace entries and their corresponding source code.

TRP

Displays traced paragraph entries.

UNCOND

Sets an unconditional breakpoint (same as AT).

USING

Sets an assembler base register for a DSECT that currently has no active USING.

WHEN (or COND)

Sets conditional breakpoints (or COND).

*

Adds a comment to the session log.

/clist

Executes CLIST CAMRCMD, called with parameter clist.

ADVANCE Command (Follow Trace Pointers Forward)

Referencing the trace table, the ADVANCE command highlights and displays the next statement that was executed. This feature lets the programmer visually follow in a forward sequence the statements that have been executed. This command is used along with the PREVIOUS command.

Syntax

Use the following syntax for ADVANCE:

  ADVANCE <nnn|P nn>

You may enter this command in its abbreviated form: A.

Variables

Use the following variables with the ADVANCE command:

nnn

Specifies the number of executed statements for the session to move forward. The default is one.

P

Specifies that the next executed paragraph, procedure, or label is displayed.

nn

Specifies the number of paragraphs, procedures, or labels for the session to move forward. The default is one.

Usage Notes

The trace facility must be turned on for the ADVANCE command to function. The trace facility is turned on 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 chapter.

The ADVANCE command visually displays the forward execution of the program using the trace table entries. It does not actually execute the program.

The ADVANCE command does not affect the point at which a program resumes execution. Execution is resumed by issuing a GO command.

If you have not used the PREV command, the ADVANCE P command scrolls the program to the current statement, highlights it, and displays END OF TRACE TABLE in the upper right-hand corner. Use this to return the program to the current statement after scrolling through the listing. The control command CS also displays and highlights the current statement.

If data monitoring was in effect when the statement highlighted from the ADVANCE command was executed, the values displayed for your data items are from the time before that statement was executed.

AT (or UNCOND) Command (Set an Unconditional Breakpoint)

Use the AT command to set breakpoints from the Intercept panel or to display the Breakpoint panel. The UNCOND command is a synonym of AT.

If you enter the AT or UNCOND command with operands in the Command field of an Intercept panel, the breakpoint is set.

If you enter AT or UNCOND without operands, the Breakpoint panel is displayed.

Syntax

Use the following syntax for AT, UNCOND or U:

AT <<statement-number|paragraph-name|procedure-name|label-name> <AFTER|BEFORE> <(subcommand-list)>>
<<ALL|program-name> <ENTRY|EXIT|LABEL|DBCALL>  <(subcommand-list)>>

Variables

See the following variables with the AT or UNCOND commands:

statement-number

Specifies a statement-number in the program where a breakpoint is set.

paragraph-name

Specifies a paragraph-name in the COBOL program where a breakpoint is set.

procedure-name

Specifies a procedure-name in the PL/I program where a breakpoint is set.

label-name

Specifies label-name in the assembler or PL/I program where a breakpoint is set.

ENTRY

For COBOL programs, specifies that a breakpoint occurs each time the currently qualified program begins execution. For PL/I and assembler programs, specifies that a breakpoint occurs the first time the currently qualified program is entered.

EXIT

Specifies that a breakpoint occurs each time the currently qualified COBOL program finishes execution.

LABEL

Specifies that a breakpoint occurs each time the currently qualified program executes a paragraph, procedure, or label.

DBCALL

Specifies that a breakpoint occurs each time the currently qualified program makes a call to a database, such as DB2 or IMS

ALL ENTRY

Specifies that a breakpoint occurs each time a monitored COBOL program in the run unit begins execution and the first time a monitored assembler or PL/I program in the run unit begins execution.

ALL EXIT

Specifies that a breakpoint occurs each time any monitored COBOL program in the run unit finishes execution.

ALL LABEL

Specifies that a breakpoint occurs each time a monitored program executes a label.

ALL DBCALL

Specifies that a breakpoint occurs each time a monitored program makes a call to a database, such as DB2 or IMS.

AFTER

Specifies that the breakpoint should be triggered after the statement is executed.

BEFORE

Specifies that the breakpoint should be triggered before the statement is executed. This is the default.

subcommand-list

A list of application commands, separated by semicolons, to be executed when the breakpoint is encountered during the test. When testing under the ISPF dialog manager, you may enter only one subcommand unless the ISPF command delimiter character is changed to something other than the semicolon. This can be done under option 0.1 of the ISPF main menu.

Usage Notes

Set a breakpoint by the paragraph name or by the line number of the paragraph. Sample statements to set breakpoints by paragraph name are shown next:

 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 AT commands:

AT 41400 or AT 0000-INITIALIZATION

Set a breakpoint with a list of application commands to be executed at the breakpoint. The commands are executed one at a time until the program resumes execution or until a transfer of panels occurs, at which point the remaining commands are ignored. Commands should be in parentheses, separated by semicolons, as follows:

AT 41700 (SET VARIABLE-LENGTH-2 = 50;GO 41800)

In this example, the program stops before executing statement 41700, and VARIABLE-LENGTH-2 is set to 50. The GO 41800 causes the program to resume execution at statement 41800 so the contents of VARIABLE-LENGTH-2 are not changed to +25. You can use commands like these to temporarily modify the execution flow of the program.

ISPF Note

When running under ISPF, specify only one command in the subcommand list because of restricted use of the semicolon, unless the ISPF command delimiter character has been changed. You can do this in option 0.1 of the ISPF main menu.

CORE Command (Display Memory)

The CORE command invokes the Display-Alter Memory panel. This panel lets you modify data based on its address. For more information, see the chapter "Core and the Map Options."

Syntax

Use the following syntax for CORE:

CORE <data-item|paragraph-name|address|expression>

Usage Notes

If you are navigating the trace table and data monitoring was in effect for the currently highlighted statement, you will see a warning panel.  The CORE command shows only the current values of data items and not previous values.  Previous values of data items cannot be modified.

COUNTS Command (Control Frequency Counting)

Use the COUNTS command to enable or disable frequency counting, reset frequency counters, and control the display of the frequency counters.

When enabled, frequency counting causes the debugger to count the number of times each statement is executed. When the display is active, the frequency counters appear on the Intercept panel in the left margin.

Syntax

Use the following syntax for COUNTS:

COUNTS <ON|OFF> <SHOW|NOSHOW> <RESET|RESET ALL|RESET progid>

Variables

Use the following variables with the COUNTS command:

ON

Enables frequency counting

OFF

Disables frequency counting

SHOW

Causes the frequency counters to be displayed on the Intercept panel

NOSHOW

Suppresses the display of the frequency counters on the Intercept panel

RESET

Clears to zero all of the counters for the current program

RESET ALL

Clears to zero all of the counters for all of the programs

RESET progid

Clears to zero all of the counters for the specified program

Usage Notes

When specifying COUNTS ON or OFF, you may also specify SHOW or NOSHOW as a second argument.

If frequency counting is enabled but the display is disabled, counting continues even though no counts are displayed.

CS Command (Current Statement)

The Current Statement (CS) command displays and highlights the current statement. This is especially useful after scrolling through the listing and any time the next statement to be executed is no longer displayed. You can also change the current statement by a passing statement number.

Syntax

Use the following syntax for CS:

CS <statement-number|paragraph-name|procedure-name|label-name>

Usage Notes

When using CS to modify the flow of execution of a COBOL program, be careful to avoid entering a paragraph and bypassing the PERFORM statement. When the exit to the paragraph is reached, a USER 519 abend may be issued because the references to the calling statement are not defined.

When using CS 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 causes unpredictable results.

DATAMON (Enable Data Monitoring)

The DATAMON command enables data monitoring for the specified COBOL program. When this feature is used in conjunction with the trace navigation commands (PREV, ADV, POINT), you see past data values when displaying data.

Syntax

Use the following syntax for DATAMON:

DATAMON ON|OFF <pgmid>

You can use this command in its abbreviated form: DM.

Usage Notes

Enabling DATAMON lets you view past data values when navigating the trace table. If DATAMON was in effect for the statement highlighted by the trace navigation command (PREV, ADV, POINT), the data values displayed in the KEEP and DISPLAY commands will be past data values captured from a point in time before a COBOL statement referencing them is executed. These values are protected as you may not be able to update data while viewing past data values. For this reason, the SET command is disabled in this situation. When using the CORE command, a warning panel is shown indicating that the current data is shown for viewing and updating, not the past data values. Also, use of the + and - line commands are disabled when incrementing or decrementing a subscript symbolically.

The DATAMON command can be CPU intensive and it requires a significant amount of storage. The DATAMON command is only valid for COBOL programs.

DDALLOC Command (Allocate a DD)

The DDALLOC command displays the DDALLOC panel. From this panel, you allocate a DD to DUMMY, a SYSOUT class, or a data set. Note that this feature works in both batch link and foreground testing. Foreground users can also split their screen and use Option 3, ALLOCATIONS, to perform their allocations.

Syntax

Use the following syntax for DDALLOC:

DDALLOC <ddname>

You can enter this command in its abbreviated form: DDA.

DDFREE Command (Free a DD)

The DDFREE command lets you free a specified DD.

Syntax

Use the following syntax for DDFREE:

DDFREE ddname

You can enter this command in its abbreviated form: DDF.

DDQ Command (Query a DD)

The DDQ command invokes the DDName Query panel. The panel displays information about the allocated DD's.

Syntax

Use the following syntax for DDQ:

DDQ <ddname>

DISPLAY Command (Format Data or the COBOL Working Storage Section)

The DISPLAY command invokes the Display panel. You can modify the data values on this display.

Syntax

Use the following syntax for DISPLAY:

DISPLAY <data-item|expression <data-item> ...> <PRINT>

You can enter this command in its abbreviated form: D.

Variables

Use the following variables with the DISPLAY command:

data item

Causes a display of the data item, any subordinate level data items, and their data values. You may enter more than one data item.

expression

For assembler programs, enter an expression in register notation.

PRINT

Causes the data displayed by the command to be written to the session log.

Usage Notes

Consider the following COBOL WORKING-STORAGE definition:

 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 the 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.

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 the Breakpoint Panels in the chapter "Debugging Panels."

Syntax

Use the following syntax for DROP:

DROP <symbolic-name>

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

Variables

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 CA Roscoe users:

FREE  SYSMDUMP
DELETEDSN SYSMDUMP
ALLOC SYSMDUMP dsn=SYSDUMP
SPACE=(cyl, (50,10))
DISP=(NEW,catlg)
VOL=
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 in the chapter "Debugging 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 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.

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 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.

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 the chapter "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 CA File Master Plus)

The FM command invokes the CA File Master Plus product, if you have that product installed. For details on using CA File Master Plus, see the CA File Master Plus User Guide.

Syntax

Use the following syntax for FM:

FM

Note: This command is only valid when testing a program under ISPF.

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 chapter.

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:

 

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.

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:

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.

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

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.

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.

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

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 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)

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. CA supports up to 15 levels of locator qualification.

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.

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

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:

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. CA 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

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

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.

Important! 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

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 the chapter "Core and the Map Options."

Syntax

Use the following syntax with MAP:

MAP

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

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 statement following the PERFORM or CALL is encountered, where a break point occurs.

When stopped within a paragraph or subroutine, the NEXT RETURN command causes the test session to continue until the session encounters the statement following the PERFORM or CALL that invoked the current paragraph or 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 SKIP command, the S line command, or the Breakpoint panel.

If you specify the OFF command with no operands, the Breakpoint panel is displayed.

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

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:

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 chapter).

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

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

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 chapter.

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, CA 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 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

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:

RDI   data-item|ALL

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

Variables

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.

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 general registers. This command is only valid for assembler programs.

Syntax

Use the following syntax for REGS:

REGS <ON|OFF|DISPLAY|FLOAT>

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.

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.

sRESTART

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'

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 chapter 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

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.

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.

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:

Important! 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.

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.
          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 CA Optimizer or CA 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.

Interrupt this feature by pressing the Attention key. For information on the Attention key, see Stopping a Looping Program in the chapter "Testing Procedures."

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.

SNAP Command (Produce a SNAP Report)

The SNAP command produces a CA SymDump Batch, CA Optimizer/II, or CA Optimizer SNAP report, if you have one of these products initialized. For details on the SNAP report, see the appropriate product's User Guide.

Syntax

Use the following syntax for SNAP:

SNAP

Note: Minimum release requirements are CA SymDump Batch 2.0, CA Optimizer/II 3.0, or CA Optimizer 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

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.

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.

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.

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.

Format 2

This type checks a relational expression for a TRUE condition before intercepting the program. For example:

WHEN whename2 R1498_STATUS GT G

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.

Notes:

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.

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

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.)

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 chapter 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.

* 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:

ALLOC DD(INT1REPT) DSN(INT.REPORT) NEW SPACE(2 1) CYL

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 |*                                                                  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 |**                                                                 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:

PP 5740-CB1 RELEASE 2.3 JULY 24, 2004 IBM OS/VS COBOL 16.20.10 DATE FEB 3,1990 1 16.20.10 FEB 3,2005 100010 IDENTIFICATION DIVISION. 100020 PROGRAM-ID. SCRIPT. 100030 DATE-COMPILED. FEB 3,2005. 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. 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.

A sample XSUM report summary follows:

CA InterTest™ Batch EXECUTION SUMMARY REPORT FOR PROGRAM-ID: SCRIPT DATE: 02/03/05 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. ---> 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. ---> 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:

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/05. *SYMBOLIC FOR CAMRASM LOADED FROM==> NDVRTS.WONDA07.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

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/06. * SYMBOLIC FOR: CAMRASM AUTO POPULATED TO: NDVRTS.WONDA07.PROTSYM * SYMBOLIC FOR: CAMRASM LOADED FROM=> NDVRTS.WONDA07.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 CAICLIB data set to create a sample session log data set.