Variable and Common Parameters
Related topics
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.
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:
Examples of a hexstring:
- These two strings are equivalent. They represent the hexadecimal string 0FE2.
- The following are invalid, since the delimiters do not match, do not start with X, or contain invalid hexadecimal digits.
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.
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:
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.
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:
Examples of a string:
- The following all refer to the string ABCDE.
- The following all refer to the string AB/DE.
- The following is the string AB"DE. Note that apostrophes are required since the string contains an embedded quote.
- The following is the string AB’DE. Note that quotes are required since the string contains an embedded apostrophe.
- The following is the string AB DE. Note that quotes are required since the string contains an embedded blank.
- The following are invalid since the delimiters do not match.
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
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.
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:
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.
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 | 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 | 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:
- Part of a struct/union
- Defined in more than one function or code block within a function
- A combination of 1 and 2 above
The syntax of a variable is language dependent. The syntax diagrams supported for variables are:
C
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
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:
could be used for Y, even though Y is unique.
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:
is complete qualification, but
are enough as they provide uniqueness.
PL/I
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:
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
Specifies the type of data associated with the ALL keyword.
ALL BAL
Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.
ALL BALR
Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.
ALL BAS
Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.
ALL BASR
Sets/removes breakpoints, counts, skips at all statements where the given instruction is used.
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.
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.
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
Used to specify a single or range of columns for selected commands in the Source Listing screen.
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.
DELETE-OBJECT
Specifies a Code Debug CICS facility that is acted upon by the DELETE primary command.
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
Used to specify the direction in which a command processes data.
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
Specifies a Code Debug CICS facility, program line, or program area that is acted upon by the FIND and EXCLUDE primary commands.
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.
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
Uses parameters as operands to specify conditions for the GO UNTIL command.
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.
{
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
Uses parameters as operands to specify if-conditions for conditional breakpoints.
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.
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.
{
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
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
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
Used to set or delete breakpoints, counts, or skips.
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
Relational operator used in a conditional test.
The following operator values are valid. Synonyms for the values are shown in parentheses.
NE (<>) or (¬ =) or (NOT) GE (>=) LE (<=)
RANGE
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).
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.
- The range parameter is used only on the Source Listing screen (2.L) and only with the following commands:
WHEN-CONDITION
Uses parameters as operands to specify conditions for the WHEN command.
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.
{
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.