Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Variable and Common Parameters


The following variable and common parameters are used in the primary command syntax in this
document

Variable Parameter

assembler-data-label

A label or reserved-label used in commands for Assembler programs.

image2021-10-19_16-15-14.png

data-field

A COBOL data name or an Assembler, C, or PL/I variable defined within the current program.

function

A C function.

hexvalue

A string containing only hexadecimal characters.

Hexadecimal characters are: 0 through 9 and A through F.

hexstring

A delimited hexvalue string.

The following chart describes the hexstring syntax:

image2021-10-19_16-15-37.png

Examples of a hexstring:

  • These two strings are equivalent. They represent the hexadecimal string 0FE2.
X'0FE2' X"0FE2"
  • The following are invalid, since the delimiters do not match, do not start with X, or contain invalid hexadecimal digits.
X"A02F' X'A02F" 'A01F' "A01F" X’A01N’ X'QBCD'

label

A variable that is defined within an Assembler program.

This parameter is valid only for Assembler programs. For this parameter to function, you must either use the BMC Assembler language preprocessor, or use the LABELS option of the ASSEMBLER parameter with the BMC Assembler language postprocessor.

Each label must be unique within a CSECT and a listing. A label may be up to 64 characters.

Important

CSECT names are not valid as labels. If you set a breakpoint using a CSECT name, it will not be recognized as a label. On the Break/Abend (2.1) screen, Defined Storage (2.3) screen, and within the keep window of the Source Listing Screen (2.L), Code Debug CICS uses the first 34 characters of a label for display purposes. Commands like FIND and LOCATE, when used on these screens or within the keep window, also operate on the first 34 characters of the label. If you are searching for a string which is beyond the first 34 characters, the FIND command will not be able to find the string.

Assembler labels may be qualified when a label is defined within a DSECT and its scope falls within the range of a current labelled USING. For example:

MYPROGRAM CSECT
DSECTA DSECT
FIELD1 DS CL5

.
.
.
DSECTB DSECT
FIELD1 DS CL5
USINGA USING DSECTA, R5
USINGB USING DSECTB, R6
MVC USINGA.FIELD1,USINGB.FIELD1

To allow access to FIELD1 in DSECTA, you would qualify FIELD1 by using USINGA.FIELD1. To allow access to FIELD1 in DSECTB, you would qualify FIELD1 by using USINGB.FIELD1.

paragraph

A COBOL paragraph name or PL/I label.

reserved-label

A symbol used to access a predefined value.

image2021-10-19_16-16-31.png

register

A value, R0 to R15, that causes the contents of the corresponding general-purpose register to be used.

PSW

The address from the program status word (PSW) at the time of a breakpoint or abend.

Code Debug defines reserved labels for general-purpose registers (GPREGs) and the current program status word (PSW). A reserved-label is only valid for Assembler programs or when used in the syntax of the KEEP and PEEK commands. Reserved labels override programmer-defined data labels when they are used with the KEEP command. If a label R0 is defined in a program, for example, a KEEP R0 command will always set a keep for Register 0, not for the programmer-defined label of R0.

A keep set for a register displays the contents of the appropriate general-purpose register within the keep window on the Break/Abend (2.1) and Source Listing (2.L) screens and can be modified. A keep set for the PSW reserved label displays the value of the PSW in a Break/Abend state and cannot be modified.

The following table lists what each reserved-label stands for.

Reserved Label Values

Symbol

Predefined Value

R0

General purpose register 0

R1

General purpose register 1

R2

General purpose register 2

R3

General purpose register 3

R4

General purpose register 4

R5

General purpose register 5

R6

General purpose register 6

R7

General purpose register 7

R8

General purpose register 8

R9

General purpose register 9

R10

General purpose register 10

R11

General purpose register 11

R12

General purpose register 12

R13

General purpose register 13

R14

General purpose register 14

R15

General purpose register 15

PSW

Program status word

statement

Decimal statement number within the program.

string

A simple character string.

A simple character string consists of EBCDIC characters. A string may be delimited by a matching set of characters. Apostrophes (') or quotes (") are usually used as delimiters. Delimiters are only necessary if the string you wish to use contains embedded blanks, apostrophes, or quotes.

The following chart describes the string syntax:

image2021-10-19_16-17-37.png


Examples of a string:

  • The following all refer to the string ABCDE.
ABCDE 'ABCDE' "ABCDE"
  • The following all refer to the string AB/DE.
AB/DE 'AB/DE' "AB/DE"
  • The following is the string AB"DE. Note that apostrophes are required since the string contains an embedded quote.
'AB"DE'
  • The following is the string AB’DE. Note that quotes are required since the string contains an embedded apostrophe.
"AB’DE"
  • The following is the string AB DE. Note that quotes are required since the string contains an embedded blank.
"AB DE"
  • The following are invalid since the delimiters do not match.
"ABCDE' 'ABCDE" 'ABCDE/

string-literal

A string-literal can be any of the following types:

  • text-string preceded by the letter T (the default).
  • ascii-string preceded by the letter A
  • char-string preceded by the letter C
  • hex-string preceded by the letter X

image2021-10-19_16-18-11.png

Important

If the current program is a C language program, the string-literal default type is a char-string.

char-string

A char-string is a case-sensitive string of EBCDIC characters delimited by matching single or double quotes. The string is a match only if it is exactly the same as the value to which it is being compared.

For example, C'XPED' specifies the upper-case EBCDIC characters XPED, and C"XpeD" specifies the mixed case EBCDIC characters XpeD.

ascii-string

An ascii-string is like a char-string, except the characters in the string will be converted to the ASCII character set when the string is stored in memory. Like a char-string, it is case sensitive and matches another string only when every character exactly matches.

For example, A'XPRT' specifies the upper-case ASCII characters XPRT, and A"XprT" specifies the mixed case ASCII characters XprT.

Important

If your terminal does not support mixed-case input, any ascii-string you enter will be treated as upper case ASCII.

hex-string

A hex-string allows you to specify a series of hexadecimal characters (0-9, A-F) delimited by single or double quotes. A hex-string can be used to represent characters that cannot be entered directly with the keyboard.

For example, both X'E7D7C5C4' and X"E7D7C5C4" can be used to specify the hexadecimal characters E7D7C5C4. The hex-string X'E7D7C5M4' would not be valid because M is not a valid hexadecimal character.

text-string

A text-string is a non-case-sensitive string of EBCDIC characters delimited by matching single or double quotes. The string is a match regardless of the case.

For example, both T'XpEd' and T'xPeD' can be used to specify the EBCDIC characters XPED.

substring-expression 

A substring-expression is used to specify a condition than can be used for conditional traps and breakpoints. A substring expression consists of three components:

  • substring-phrase
  • operator
  • string-literal.

During execution, the contents of the storage pointed to by the substring-phrase is tested against the string-literal value using the operator. If the expression is entered on the Trap Summary screen (1.6 or 9.6, based on Code Debug transaction) and the condition evaluates as true, the trap will be taken if all other trap values match. If the expression is entered as a conditional breakpoint, the breakpoint will be taken.

The format of a substring-expression is:

image2021-10-19_16-19-9.png

substring-phrase

A substring-phrase is used to specify an area to be used in conditional traps and breakpoints. Three parameters are required for a valid substring-phrase:

  • area-keyword
  • position
  • length.

The substring-phrase must exactly match the following format with no embedded blanks.

image2021-10-19_16-19-30.png

area-keyword

A substring-phrase uses an area-keyword to specify the area to be located and acted upon by a conditional trap or breakpoint. Note that an area-keyword consists only of alphabetic characters (A-Z) unless the keyword is CONT or CONTAIN. These keywords must be followed by a plus sign and the specific container name, which may consist of A-Z a-z 0-9 $ @ # / % & ? ! : | “ = ¬, ; < > . - and _. Leading and embedded blank characters are not permitted in the container name. If the name supplied is less than 16 characters, it is padded with trailing blanks up to 16 characters. The following keywords and abbreviations are allowed:

INITCOMM or
ICA

The COMMAREA passed to the initial program in a transaction (task).

CURRCOMMor CCA

The current COMMAREA of a transaction (task) when there is a transfer of control within the task.

MQDATA or
MQD

The data area of an MQ message.

MQMD

The message descriptor of an MQ message.

CONTAIN or CONT

A specific container that is available on the current channel associated with a program. Note that if this parameter is used, it must be followed by a plus sign (+) and the container name.

TDD or TD

The most recent Transient Data retrieved by an EXEC CICS READQ TD command.

TSD or TS

The most recent Temporary Storage data retrieved by an EXEC CICS RETRIEVE command (this is the data passed by an EXEC CICS START command) or retrieved by an EXEC CICS READQ TS command.

TIOA

The most recent terminal input message data from the terminal allocated to this task. Note that, depending on the terminal device, TIOA input may contain scattered control/positioning information that is not actual input data. BMC recommends that you wildcard the position parameter when referencing TIOA data unless you are experienced with input messages from this type of terminal.

position

A substring-phrase uses the position parameter to specify the location of the first byte to start at within the area described by the area-keyword parameter. The position parameter must be within the range of 1 to 32767 or be a wildcard, which is an asterisk (*).

Wildcarding the position parameter has the following restrictions:


    • The CONTAIN keyword cannot be wildcarded.
    • When wildcarding is specified, the relational operator must be EQUALS (EQ or =).

For example, INITCOMM(3:7) specifies the COMMAREA initially passed to the first program in a transaction (task) starting at position 3 for a length of 7.

As another example, CONT+PAYROLL1(20:3) specifies the data in the current program’s PAYROLL1 container starting at position 20 for a length of 3.

length

A substring-phrase uses the length parameter to specify the length of data to be used within the area described by the area-keyword parameter. The length parameter must be within the range of 1 to 48.

For example, MQDATA(4:6) specifies the data area of an MQ message starting at position 4 and extending for 6, the length.

system-label

A label previously defined by an authorized user on the Define System Labels screen (9.9).

These labels also include labels predefined by BMC such as TCA, CSA, etc.

symbolic-label

A special label, available only on the Source Listing screen (2.L), defined by typing the label into the line command area preceding a source line.

A symbolic-label is a character string that must begin with a period (.) and is followed by one to five alphabetic characters (A through Z). No numbers or special characters are allowed. Because labels beginning with. Z are reserved for special system symbolic-labels, Z is not a valid character for user assigned symbolic-labels.

There are several special system symbolic-labels that are automatically assigned and maintained whenever a source listing is accessed. These labels begin with the letter Z. Unlike user assigned symbolic-labels, system labels do not necessarily stay with the same line in the listing but represent a logical line in the source.

System symbolic-labels currently supported are:

.ZCSR

Corresponds to the line on which the cursor is currently located.

.ZFIRST

Corresponds to the first line in the source listing being displayed. This label can be abbreviated as .ZF.

.ZLAST

Corresponds to the last line in the source listing being displayed. This label can be abbreviated as .ZL.

symbolic-label rules:

  • Multiple labels can be defined on the same line, but only the first defined label is displayed. The other labels remain hidden until the first label defined for that line is moved or deleted.
  • A symbolic-label can be deleted by blanking out the label characters in the line command area.
  • A symbolic-label can be moved by rekeying the label on another line. Typing over a label with a line command does not remove the assignment from the label. Once the line command is processed, the symbolic-label is redisplayed.
  • symbolic-labels remain with a source listing until you end the Code Debug CICS session. They are unique for each user and program.
  • symbolic-labels are used only on the Source Listing Screen (2.L) and only with the following commands:
    • EXCLUDE
    • FIND
    • LOCATE
    • RESET

user-label

A user-defined label that has been previously established on the Define User Labels (1.9) screen.

variable

A COBOL data name or a C or PL/I variable defined within a program.

Variables may be either unique or qualified. Unique variable names are entered as the actual variable name with the following restriction: C variable names are case-sensitive. No further qualification is necessary if this variable name is unique within the program. Qualified variable names are necessary when a variable name is not unique within a program. For COBL and PL/I, this occurs when a variable is part of a structure. For C, a duplicate variable name may be:

  1. Part of a struct/union
  2. Defined in more than one function or code block within a function
  3. A combination of 1 and 2 above

Important

For COBOL and PL/I programs, you may enter qualified data names in either COBOL or PL/I syntax. For C programs, the data name must be entered fully qualified just as you would manipulate a variable in a C program.

The syntax of a variable is language dependent. The syntax diagrams supported for variables are:

C

image2021-10-19_16-21-45.png


Since a given variable name may be defined in more than one procedure and in more than one structure, the specific C syntax must be used to uniquely qualify a variable. For example, suppose that variable X and STRUCTURE1 and STRUCTURE2 are declared in an identical manner in Functio1 and Function2. To uniquely qualify both variable Xs and member Xs in STRUCTURE1 and STRUCTURE2:

Function1:X                                 Function2:X
Function1:STRUCTURE1.X           Function2:STRUCTURE1.X
Function1:STRUCTURE2.X           Function2:STRUCTURE2.X

COBOL

image2021-10-19_16-22-28.png


If a variable name occurs in multiple structures within a program, it must be qualified as unique. For example:

01 STRUCTURE1      01 STRUCTURE2
 02 X               02 X
  03 Y               03 Z

X is NOT a unique variable because it occurs in both STRUCTURE1 and STRUCTURE2 and must be qualified. Y and Z are unique variables, assuming that they are not defined elsewhere in the program.

To qualify each X, code the following:

X IN STRUCTURE1
X OF STRUCTURE2

You may qualify unique variables. For example:

Y IN X IN STRUCTURE1

could be used for Y, even though Y is unique.

Z IN X IN STRUCTURE2

could be used for Z, even though Z is unique.

The entire level of qualification is not necessary; you need only use enough qualification to make the variable unique. For example:

Y IN X IN STRUCTURE1

is complete qualification, but

Y IN X or Y IN STRUCTURE1

are enough as they provide uniqueness.

PL/I

image2021-10-19_16-23-35.png


Since a variable may also be defined in more than one procedure, PL/I syntax allows you to qualify a variable at the highest level using the procedure name in which it is declared. For example, suppose that both STRUCTURE1 and STRUCTURE2 are declared in an identical way in PROC1 and PROC2. To uniquely qualify X in all four structures:

PROC1:STRUCTURE1.X PROC2:STRUCTURE1.X
PROC1:STRUCTURE2.X PROC2:STRUCTURE2.X

PL/I based variable

The syntax of a PL/I based variable is:

image2021-10-19_16-23-58.png


This syntax is valid only with the SET command. The address of the pointer variable remains the base for the based-variable in all the screens. To change the base address, you must re-issue the SET command.

Common Parameters

The following common parameters are used in the primary command syntax in this space.

ALL-TYPE

image2021-10-19_16-25-3.png

Specifies the type of data associated with the ALL keyword.

image2021-10-19_16-25-15.png

ALL BAL

Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.

Important

This option is valid for Assembler programs only.

ALL BALR

Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.

Important

This option is valid for Assembler programs only.

ALL BAS

Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.

Important

This option is valid for Assembler programs only.

ALL BASR

Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.

Important

This option is valid for Assembler programs only.

ALL CALLS

Sets/removes breakpoints, counts, skips at all CALL verbs within a COBOL or PL/I program, or all BAL, BALR, BAS, and BASR instructions in an Assembler program.

ALL IDMS

Sets/removes breakpoints, counts, skips at all IDMS calls within a program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the IDMS stub.

ALL label

Sets/removes breakpoints, counts, skips at all statements/instructions where a label is used or referenced.

ALL SVC number

Sets/removes breakpoints, counts, skips at SVC instructions in an Assembler program. The optional parameter number sets/removes breakpoints, counts, skips only at the specified SVC instructions.

Important

This option is valid for Assembler programs only.

ALL variable

Sets/removes breakpoints, counts, skips at all statements where the variable is referenced.

ALL CICS type

Sets/removes breakpoints, counts, skips at all EXEC CICS calls within the program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the command-level stub.

You may further qualify the type of EXEC command by using the type parameter to allow you to set/remove breakpoints at a specific type of CICS call. As an example, ALL CICS READ will set/remove breakpoints at all EXEC CICS READ calls.

ALL DLI type

Sets/removes breakpoints, counts, skips at all EXEC DL/I calls within the program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the DLI stub.

You may further qualify the type of EXEC DL/I calls by using the type parameter. As an example, ALL DLI GU will set/remove breakpoints on all DL/I GU calls.

ALL EXEC type

Sets/removes breakpoints, counts, skips at all EXEC (High Level Program Interface) calls. For COBOL and PL/I programs, breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the stub.

You may further qualify the type of EXEC command by using the type parameter which sets/removes breakpoints for a particular EXEC call. As an example, ALL EXEC READ will set/remove breakpoints at all EXEC CICS READ calls.

Important

This parameter includes support for any EXEC CICS, EXEC DLI, and EXEC SQL High Level Program Interface calls.

ALL MQ type

Sets/removes breakpoints, counts, skips at all IBM MQ for z/OS (formerly WebSphere MQ and MQSeries) calls within the program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the MQ stub. You may further qualify the type of CALL command by using the type parameter to allow you to set/remove breakpoints at a specific type of MQ call. As an example, ALL MQ MQOPEN will set/remove breakpoints at all MQOPEN calls. Other valid types are MQBACK, MQDISC, MQCLOSE, MQCMIT, MQCONN, MQPUT1, MQSET, MQGET, MQINQ, and MQPUT.

ALL SQL type

Sets/removes breakpoints, counts, skips at all EXEC SQL calls within the program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the SQL stub.

You may further qualify the type of EXEC command by using the type parameter. As an example, ALL SQL SELECT will set/remove breakpoints at all EXEC SQL SELECT calls.

ALL WEB type

Sets/removes breakpoints, counts, skips at all EXEC CICS WEB calls within the program. For COBOL and PL/I programs, the breakpoints are set/removed at the generated CALL verb. For Assembler programs, the breakpoints are set/removed at the BALR 14,15 instruction that branches to the command-level stub. You may further qualify the type of WEB command by using the type parameter to allow you to set/remove breakpoints at a specific type of CICS WEB call. As an example, ALL WEB READ will set/remove breakpoints at all EXEC CICS WEB READ calls. This command is more powerful than ALL CICS WEB because a type of WEB command can be specified. Valid types are EXTRACT, STARTBROWSE, READNEXT, ENDBROWSE, READ, RECEIVE, WRITE, SEND, and RETRIEVE.

COLUMNS

image2021-10-19_16-26-56.png


Used to specify a single or range of columns for selected commands in the Source Listing screen.

image2021-10-19_16-27-18.png

begcol

Beginning column of each line where Code Debug CICS is to search for a string. A valid entry is a decimal number from 1 to 132. If begcol is entered and no endcol parameter is specified, Code Debug CICS searches for the string only when it begins in this column.

endcol

Ending column of each line where Code Debug CICS is to search for a string. A valid entry is a decimal number from 1 to 132. The specified value must be greater than that of begcol. The length of the specified string must be less than or equal to the difference of endcol minus begcol.

The begcol and endcol parameters are allowed only with the FIND command for a string, and only on the Source Listing screen (2.L).

DELETE-OBJECT

image2021-10-19_16-27-42.png

Specifies a  Code Debug CICS facility that is acted upon by the DELETE primary command.

image2021-10-19_16-27-57.png

ALL

Deletes all objects.

AFTERS (AFTER, A)

If no location parameter is coded, all after breakpoints will be deleted.

If the location parameter is coded, only those after breakpoints set at the specific location will be deleted.

BEFORES (BEFORE, B)

If no location parameter is coded, all before breakpoints will be deleted.

If the location parameter is coded, only those before breakpoints set at the specific location will be deleted.

BREAKS (BREAK, BR)

If no location parameter is coded, all after, before, and onetime breakpoints will be deleted.

If the location parameter is coded, only those after, before, and onetime breakpoints set at the specific location will be deleted.

COUNTS (COUNT, C)

If no location parameter is coded, all counts will be deleted.

If the location parameter is coded, only those counts set at the specific location will be deleted.

ONETIMES (ONE, O)

If no location parameter is coded, all onetime breakpoints will be deleted.

If the location parameter is coded, only those onetime breakpoints set at the specific location will be deleted.

SKIPS (SKIP, S)

If no location parameter is coded, all skips will be deleted.

If the location parameter is coded, only those skips set at the specific location, will be deleted.

KEEPS (KEEP, K)

If no variable parameter is coded, all keeps will be deleted.

If the variable parameter is coded, only the keep set for the variable will be deleted.

MONITOR

Ends monitoring of the currently displayed module and CSECT.

VERIFYS (VERIFY, VER, V)

If no label or statement parameters are coded, then all verifys are deleted.

If the label parameter is coded, only the verify set for the statement where the label is defined will be deleted.

If the statement parameter is coded, only the verify set at that statement will be deleted.

WHENS (WHEN, W)

If no when-condition parameter is coded, all whens will be deleted.

If the when-condition parameter is coded, only the whens that match that condition will be deleted.

DIRECTION

image2021-10-19_16-28-58.png


Used to specify the direction in which a command processes data.

image2021-10-19_16-29-11.png

Important

The descriptions for the following direction parameters describe the action of the parameter in general. Specific commands may act in a slightly different fashion and are discussed in detail for the specific command.

NEXT

Looks forward in the data being displayed for the next occurrence of the object you wish to locate.

The scan begins at either:


    • The next byte beyond the cursor position (if the cursor is within the data portion of the display)
    • The beginning of the currently displayed data (if the cursor is NOT within the data portion of the display).

The default is NEXT.

FIRST

Starts at the beginning of the data being displayed and looks forward for the first occurrence of the object you wish to locate.

LAST

Starts at the end of the data being displayed and looks backward for the last occurrence of the object you wish to locate.

PREV

Looks backward in the data being displayed for the previous occurrence of the object you wish to locate. The scan begins at either:


    • The byte previous to the cursor position (if the cursor is within the data portion of the display)
    • The beginning of the currently displayed data (if the cursor is NOT within the data portion of the display).

FIND-OBJECT

image2021-10-19_16-29-39.png

Specifies a  Code Debug CICS facility, program line, or program area that is acted upon by the FIND and EXCLUDE primary commands.

image2021-10-19_16-29-51.png

AFTERS (AFTER, A)

Line where an after breakpoint has been set.

BEFORES (BEFORE, B)

Line where a before breakpoint has been set.

BREAKS (BREAK, BR)

Line where an after and/or before breakpoint has been set.

COUNTS (COUNT, C)

Line where a count has been set.

KEEPS (KEEP, K)

Line where a variable selected for viewing has been defined.

You can use the QUALIFIED parameter to show the line where a kept variable is defined as well as the lines containing the higher-level variables that are used to uniquely qualify the variable. For example, FIND ALL KEEP QUALIFIED.

Important

The QUALIFIED parameter is only available for COBOL and PL/I programs.

LABELS (LABEL, LABS, LAB, LBLS, LBL)

Line that contains an Assembler label, a COBOL paragraph or label, or a PL/I label or procedure name.

ONETIMES (ONE, O)

Line where a onetime breakpoint has been set.

PARAGRAPHS (PARAGRAPH, PARAS, PARA)

Statement that contains a COBOL paragraph or label.

PROCEDURES (PROCEDURE, PROCS, PROC)

Statement that contains a PL/I procedure name.

RESUME

Resume location where Code Debug CICS continues execution.

SKIPS (SKIP, S)

Line where a program skip has been set.

SYMBOLICS (SYMBOLIC, SYMBOLS, SYMBOL, SYMB, SYM)

Line where a symbolic-label has been defined.

GO-UNTIL-CONDITION

image2021-10-19_16-30-59.png

Uses parameters as operands to specify conditions for the GO UNTIL command.

image2021-10-19_16-31-14.png

Important

The data-field operand is only allowed for C, COBOL, and PL/I programs.

When the data-field operand is used, a keep is automatically set for this data-field.

CHANGES

Causes the current value for the first operand to be used as the value against which to compare. This is equivalent to entering NE * for the operator and second operand. If program execution is halted for any reason (for a before breakpoint or an abend, for example), the value of the first operand is re-acquired to obtain the current value when execution resumes.

An asterisk (*) indicates the current first operand value.

enum-const

The enum-const sub-operand may be used when debugging a C program, and the first operand specifies a variable which is an Enumeration Type. In this case, you can specify an Enumeration Constant that is a member of the Enumeration Type being tested.

For example:

In the Code Debug CICS C demonstration program, CWDEMC, CallType is defined in procedure main as Enumerated Type CALLTYPE.

typedef enum _CallType
{
CallInternal,
CallStatic_ASM,
CallStatic_C,
CallDynamic_C,
CallDLL_C
}
CALLTYPE;


CallType may be assigned one of the above values, for example:

CallInternal
 CallStatic_ASM
 CallStatic_C
 CallDynamic_C or
 CallDLL_C

Usage Notes

The condition is executed according to the following rules:


    • The tests between the first operand and the second operand are made as logical comparisons.
    • Comparisons are made using the length of the first operand or the second operand, whichever is shorter.
    • If the second operand is a numeric value, the data is converted to a format compatible with the first operand. Comparisons are made using the length of the first operand.

IF-CONDITION

image2021-10-19_16-33-6.png

Uses parameters as operands to specify if-conditions for conditional breakpoints.

image2021-10-19_16-33-20.png

COUNT

A keyword that associates a counter with a statement.

Two counters may be associated with a statement. The first counter is associated with the statement by use of the COUNT command. The second counter is associated with a statement when a conditional breakpoint (after, before, or skip) is set using the COUNT keyword in the condition. Each counter is incremented separately.

XDUSERID

Keyword for the userID CICS associates with the transaction’s execution. The operand it will be compared with must be a 1 to 8-byte string or a valid hexstring containing an even number of digits.

You can use the XDUSERID keyword to set conditional breakpoints or skips that Code Debug will trap only if the program’s execution is initiated by a particular user. For example, entering the primary command BEFORE 400 IF XDUSERID EQ 'MYUSERID' sets a conditional breakpoint on statement number 400. Code Debug will stop at the breakpoint only when CICS identifies MYUSERID as the user who started the transaction.

If the SET FOOT DATA command has been issued, you can enter CALC XDUSERID to display the current userID in the footing area of screen. For information, see CALC (??). The SET FOOT STATUS command will also display the current userID in the footing area of the screen.

Important

If the data-field operand is used, a keep is created for this data-field.

enum-const

The enum-const sub-operand may be used when debugging a C program, and the first operand specifies a variable which is an Enumeration Type. In this case, you can specify an Enumeration Constant that is a member of the Enumeration Type being tested.

For example:

In the Code Debug CICS C demonstration program, CWDEMC, CallType is defined in procedure main as Enumerated Type CALLTYPE.

typedef enum _CallType
{
CallInternal,
CallStatic_ASM,
CallStatic_C,
CallDynamic_C,
CallDLL_C
}
CALLTYPE;


CallType may be assigned one of the above values, for example:

CallInternal
CallStatic_ASM
CallStatic_C
CallDynamic_C or
CallDLL_C

substring-expression

See substring-expressionfor details about the substring-expression variable.

Usage Notes

The if-condition is executed according to the following conditions:


    • The tests between the first operand and the second operand are made as logical comparisons.
    • Comparisons are made using the length of the first operand or the second operand, whichever is shorter.
    • If the second operand is a numeric value, the data is converted to a format compatible with the first operand. Comparisons are made using the length of the first operand.

KEYWORD

image2021-10-19_16-34-40.png

One of the following figurative constants:

  • SPACE or SPACES: A string of x'40' characters.
  • ZERO, ZEROS, or ZEROES: Zero in the form of the first operand.
  • HIGH-VALUE or HIGH-VALUES: A string of x'FF' characters.
  • LOW-VALUE or LOW-VALUES: A string of x'00' characters.
  • NULL or NULLS: In a PL/I or C program, the null pointer value. Otherwise, a string of x'00' characters.
  • NUMERIC: Test the first operand for numeric data. The relational operator must be either EQ (=) or NE (Ø= or NOT).

LITERAL

image2021-10-19_16-34-51.png

A number, string, or hexstring that is used to specify a value.

  • Numbers can be optionally preceded or followed by a sign.
  • A string must be enclosed in single or double quotes.
  • A hexstring must be enclosed in single or double quotes and preceded by an X.

LOCATION

image2021-10-19_16-34-59.png

Used to set or delete breakpoints, counts, or skips.

image2021-10-19_16-35-8.png

none

Omitting the location parameter defaults the location as follows:


    • If the current program is not in a break/abend state, the location is the first statement in the procedure division for a COBOL program, or the first executable instruction in an Assembler, C, or PL/I program.
    • If the current program is in a break/abend state, the location is the RESUME location; that is, the statement or instruction to which the current execution pointer is pointing.

ALL LABELS

Sets/removes breakpoints and counts at all labels in an Assembler program. This parameter is not valid for skips.

For this option of function, either use the BMC Assembler language preprocessor, or use the LABEL option of the ASSEMBLER parameter with the BMC Assembler language postprocessor.

ALL PARA

Sets/removes breakpoints and counts for all paragraphs or routines in the program. This parameter is not valid for skips. The counts are set/removed at the first executable verb in all paragraphs in a COBOL program or the first executable instruction following all labels within an Assembler, or PL/I program.

ALL PROC

Sets/removes breakpoints and counts for all main and internal procedures in the program. This parameter is not valid for skips. The counts are set/removed at the first executable verb in all paragraphs in a COBOL program or the first executable instruction following all labels within an Assembler, or PL/I program.

ALL FUNC

Sets/removes breakpoints and counts for all functions in the C program. This parameter is not valid for skips. The counts are set/removed at the point the C function is defined.

OPERATOR

image2021-10-19_16-35-38.png

Relational operator used in a conditional test.

The following operator values are valid. Synonyms for the values are shown in parentheses.

EQ (=) GT (>) LT (<)
NE (<>) or (¬ =) or (NOT) GE (>=) LE (<=)

Important

For C programs, the comparison operators (==) and (!=) are also accepted.

RANGE

image2021-10-19_16-36-6.png

A range consists of a starting and ending symbolic-labels. These labels specify the beginning and ending points of the command execution. Symbolic labels are defined and used only on the Source Listing screen (2.L).

image2021-10-19_16-36-17.png

start-range-label

Specifies the symbolic-label to be used as one of the endpoints of the range.

end-range-label

Specifies the symbolic-label to be used as the other endpoint of the range.

Range rules:


    • The range parameter is used only on the Source Listing screen (2.L) and only with the following commands:
      • EXCLUDE
      • FIND
      • RESET.
    • The range parameter consists of exactly two labels that must be separated by a blank or comma. Therefore, using a single label or more than two labels is invalid.
    • The label with the lowest relative line number is the start of the range, and the label with the highest relative line number is the end of the range, regardless of the order in which they are specified.

WHEN-CONDITION

image2021-10-19_16-36-45.png

Uses parameters as operands to specify conditions for the WHEN command.

image2021-10-19_16-36-58.png

Important

The data-field operand is only allowed for C, COBOL, and PL/I programs.

When the data-field operand is used, a keep is automatically set for this data-field.

CHANGES

Causes the current value for the first operand to be used as the value against which to compare. This is equivalent to entering NE * for the operator and second operand. If program execution is halted for any reason (for a before breakpoint or an abend, for example), the value of the first operand is re-acquired to obtain the current value when execution resumes.

An asterisk (*) indicates the current first operand value.

XDUSERID

Keyword for the userID CICS associates with the transaction’s execution. The operand it will be compared with must be an 8-byte string or a valid hexstring containing 16 digits.

You can use the XDUSERID keyword to set conditional breakpoints, skips, or when-conditions that Code Debug will trap only if the program’s execution is initiated by a particular user. For example, entering the primary command WHEN XDUSERID = "MYUSERID" sets a when-condition causing the program to be stopped if the ID of the user who started the transaction is MYUSERID.

If the SET FOOT DATA command has been issued, you can enter CALC XDUSERID to display the current userID in the footing area of screen. For information, see CALC (??). The SET FOOT STATUS command will also display the current userID in the footing area of the screen.

enum-const

The enum-const sub-operand may be used when debugging a C program, and the first operand specifies a variable which is an Enumeration Type. In this case, you can specify an Enumeration Constant that is a member of the Enumeration Type being tested.

For example:

In the Code Debug CICS C demonstration program, CWDEMC, CallType is defined in procedure main as Enumerated Type CALLTYPE.

typedef enum _CallType
{
CallInternal,
CallStatic_ASM,
CallStatic_C,
CallDynamic_C,
CallDLL_C
}
CALLTYPE;


CallType may be assigned one of the above values, for example:

CallInternal
CallStatic_ASM
CallStatic_C
CallDynamic_C or
CallDLL_C

Usage Notes

The when-condition is executed according to the following conditions:

  • The tests between the first operand and the second operand are made as logical comparisons.
  • Comparisons are made using the length of the first operand or the second operand, whichever is shorter.
  • If the second operand is a numeric value, the data is converted to a format compatible with the first operand. Comparisons are made using the length of the first operand.
  • Use parentheses when compound conditions are necessary.
  • Use the AND, OR, and parentheses when compound conditions are necessary.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*