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 |
|
suffix |
% for indirect addressing in 24 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. |
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. |
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.
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. |
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.
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.
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>
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.
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 |
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.
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>
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.
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.
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.
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.
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.
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>
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. |
|
|
Causes the data displayed by the command to be written to the session log. |
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.
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.
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.
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
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.
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 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 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) |
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.
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.
IMS databases are not supported on this display. This command is not supported for assembler or PL/I programs.
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.
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. |
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.
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:
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.
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. |
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.
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. |
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.
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. |
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 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.
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.
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:
|
|
PL/I: |
Use this command to refer to the EMPLOYEE_NO in the MASTER_RECORD if the EMPLOYEE_NO is not unique:
|
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:
|
|
PL/I: |
This command displays the fourth element of the table WA_1A in WA_TABLE_1:
|
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.
See the previous section, LDI (or KEEP) Command (List Data Item), for a description of the supported special registers.
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
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. |
|
|
Causes the data displayed by the command to be written in the session log. |
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.
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
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.
The LISTLBL command lists the labels that were added with the .label command.
Syntax
Use the following syntax with LISTLBL:
LISTLBL
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.
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.
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
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.
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.
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. |
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
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. |
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. |
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.
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. |
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.
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
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.
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.
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.
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
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.
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. |
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. |
|
|
Causes the data displayed by the command to be written in the session log. |
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.
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
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 removes column numbers that are displayed on the Intercept or Display panel by the COLUMN command.
Syntax
Use the following syntax for RESET:
RESET
The RESET command runs from any panel that has a command line that accepts the COLUMN command.
The RESTART command re-initiates a batch link job to the beginning of the current step being debugged.
sRESTART
This command is only valid under batch link. Foreground users should use the QUIT command.
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. |
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
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. |
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: |
Sets the fourth element in the table WA-T1 to 6.
Sets an element in WA-T2 depending on the values of SUB1 and SUB2 to S1S2.
Sets the second element of the non-unique table WA-T1-1A in the unique table WA-TABLE-1 to 2. |
|
PL/I: |
Sets the fourth element in the table WA_T1 to 6.
Sets an element in WA_T2 depending on the values of SUB1 and SUB2 to S1S2.
Sets the second element of the non-unique table WA_T1_1A in the unique table WA_TABLE_1 to 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.
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. |
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.
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. |
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.
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.
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. |
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
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.
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.
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.
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. |
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. |
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.
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
The trace facility must be enabled for the TRP command to function.
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 |
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 |
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
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. |
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.
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
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.
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:
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
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:
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.
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.
|
Copyright © 2013 CA.
All rights reserved.
|
|