
HP OpenVMS systems documentation 
Previous  Contents  Index 
The following subtopics describe debugger support for COBOL.
Supported COBOL operators in language expressions include:
Kind  Symbol  Function 

Prefix  +  Unary plus 
Prefix    Unary minus (negation) 
Infix  +  Addition 
Infix    Subtraction 
Infix  *  Multiplication 
Infix  /  Division 
Infix  **  Exponentiation (VAX specific) 
Infix  =  Equal to 
Infix  NOT =  Not equal to 
Infix  >  Greater than 
Infix  NOT <  Greater than or equal to 
Infix  <  Less than 
Infix  NOT >  Less than or equal to 
Infix  NOT  Logical NOT 
Infix  AND  Logical AND 
Infix  OR  Logical OR 
Supported constructs in language and address expressions for COBOL follow:
Symbol  Construct 

( )  Subscripting 
OF  Record component selection 
IN  Record component selection 
Supported COBOL data types follow:
COBOL Data Type  Operating System Data Type Name 

COMP  Longword Integer (L,LU) 
COMP  Word Integer (W,WU) 
COMP  Quadword Integer (Q,QU) 
COMP1  F_Floating (F) 
COMP1 (Alpha and I64 specific)  S_Floating (FS) 
COMP2  D_Floating (D) 
COMP2 (Alpha and I64 specific)  T_Floating (FT) 
COMP3  Packed Decimal (P) 
INDEX  Longword Integer (L) 
Alphanumeric  ASCII Text (T) 
Records  (None) 
Numeric Unsigned  Numeric string, unsigned (NU) 
Leading Separate Sign  Numeric string, left separate sign (NL) 
Leading Overpunched Sign  Numeric string, left overpunched sign (NLO) 
Trailing Separate Sign  Numeric string, right separate sign (NR) 
Trailing Overpunched Sign  Numeric string, right overpunched sign (NRO) 
Floatingpoint numbers of type COMP1 may be represented by F_Floating or IEEE S_Floating, depending on compiler switches.
Floatingpoint numbers of type COMP2 may be represented by D_Floating or IEEE T_Floating, depending on compiler switches.
The debugger can show source text included in a program with the COPY, COPY REPLACING, or REPLACE statement. However, when COPY REPLACING or REPLACE is used, the debugger shows the original source text instead of the modified source text generated by the COPY REPLACING or REPLACE statement.
The debugger cannot show the original source lines associated with the code for a REPORT section. You can see the DATA SECTION source lines associated with a REPORT, but no source lines are associated with the compiled code that generates the report.
On OpenVMS Alpha systems, the debugger can take an unusually great amount of time and resources if you use the STEP command to execute an INITIALIZE statement in a COBOL program when a large table (array) is being initialized.
To work around this problem, set a breakpoint on the first executable line past the INITIALIZE statement, rather than stepping across the INITIALIZE statement.
The following subtopics describe debugger support for DIBOL.
Supported DIBOL operators in language expressions include:
Kind  Symbol  Function 

Prefix  #  Round 
Prefix  +  Unary plus 
Prefix    Unary minus (negation) 
Infix  +  Addition 
Infix    Subtraction 
Infix  *  Multiplication 
Infix  /  Division 
Infix  //  Division with fractional result 
Infix  .EQ.  Equal to 
Infix  .NE.  Not equal to 
Infix  .GT.  Greater than 
Infix  .GE.  Greater than or equal to 
Infix  .LT.  Less than 
Infix  .LE.  Less than or equal to 
Infix  .NOT.  Logical NOT 
Infix  .AND.  Logical AND 
Infix  .OR.  Logical OR 
Infix  .XOR.  Exclusive OR 
Supported constructs in language and address expressions for DIBOL follow:
Symbol  Construct 

( )  Substring 
[ ]  Subscripting 
. (period)  Record component selection 
Supported DIBOL data types follow:
DIBOL Data Type  Operating System Data Type Name 

I1  Byte Integer (B) 
I2  Word Integer (W) 
I4  Longword Integer (L) 
Pn  Packed Decimal String (P) 
Pn.m  Packed Decimal String (P) 
Dn  Numeric String, Zoned Sign (NZ) 
Dn.m  Numeric String, Zoned Sign (NZ) 
An  ASCII Text (T) 
Arrays  (None) 
Records  (None) 
Supported Fortran operators in language expressions include:
Kind  Symbol  Function 

Prefix  +  Unary plus 
Prefix    Unary minus (negation) 
Infix  +  Addition 
Infix    Subtraction 
Infix  *  Multiplication 
Infix  /  Division 
Infix  **  Exponentiation (VAX specific) 
Infix  //  Concatenation 
Infix  .EQ.  Equal to 
Infix  ==  Equal to 
Infix  .NE.  Not equal to 
Infix  /=  Not equal to 
Infix  .GT.  Greater than 
Infix  >  Greater than 
Infix  .GE.  Greater than or equal to 
Infix  >=  Greater than or equal to 
Infix  .LT.  Less than 
Infix  <  Less than 
Infix  .LE.  Less than or equal to 
Infix  <=  Less than or equal to 
Prefix  .NOT.  Logical NOT 
Infix  .AND.  Logical AND 
Infix  .OR.  Logical OR 
Infix  .XOR.  Exclusive OR 
Infix  .EQV.  Equivalence 
Infix  .NEQV.  Exclusive OR 
Supported constructs in language and address expressions for Fortran follow:
Symbol  Construct 

( )  Subscripting 
. (period)  Record component selection 
% (percent sign)  Record component selection 
Supported Fortran predefined symbols follow:
Symbol  Description 

.TRUE.  Logical True 
.FALSE.  Logical False 
Supported Fortran data types follow:
Fortran Data Type  Operating System Data Type Name 

LOGICAL*1  Byte Unsigned (BU) 
LOGICAL*2  Word Unsigned (WU) 
LOGICAL*4  Longword Unsigned (LU) 
LOGICAL*8 (Alpha and I64 specific)  Quadword Unsigned (QU) 
BYTE  Byte (B) 
INTEGER*1  Byte Integer (B) 
INTEGER*2  Word Integer (W) 
INTEGER*4  Longword Integer (L) 
INTEGER*8 (Alpha and I64 specific)  Quadword Integer (Q) 
REAL*4  F_Floating (F) 
REAL*4 (Alpha and I64 specific)  IEEE S_Floating (FS) 
REAL*8  D_Floating (D) 
REAL*8  G_Floating (G) 
REAL*8 (Alpha and I64 specific)  IEEE T_Floating (FT) 
REAL*16 (Alpha and I64 specific)  H_Floating (H) 
COMPLEX*8  F_Complex (FC) 
COMPLEX*8 (Alpha and I64 specific)  IEEE S_Floating (SC) 
COMPLEX*16  D_Complex (DC) 
COMPLEX*16  G_Complex (GC) 
COMPLEX*16 (Alpha and I64 specific)  IEEE T_Floating (TC) 
CHARACTER  ASCII Text (T) 
Arrays  (None) 
Records  (None) 
Even though the data type codes for unsigned integers (BU, WU, LU, QU) are used internally to describe the LOGICAL data types, the debugger (like the compiler) treats LOGICAL variables and values as being signed when they are used in language expressions.
The debugger prints the numeric values of LOGICAL variables or expressions instead of .TRUE. or .FALSE. Normally, only the loworder bit of a LOGICAL variable or value is significant (0 is .FALSE. and 1 is .TRUE.). However, Fortran does allow all bits in a LOGICAL value to be manipulated and LOGICAL values can be used in integer expressions. For this reason, it is at times necessary to see the entire integer value of a LOGICAL variable or expression, and that is what the debugger shows.
COMPLEX constants such as (1.0,2.0) are not supported in debugger expressions.
Floatingpoint numbers of type REAL*4 and COMPLEX*8 may be represented by F_Floating or IEEE S_Floating, depending on compiler switches.
Floatingpoint numbers of type REAL*8 and COMPLEX*16 may be represented by D_Floating, G_Floating, or IEEE T_Floating, depending on compiler switches.
On OpenVMS Alpha systems, the debugger cannot evaluate expressions that contain complex variables. To work around this problem, examine the complex variable and then evaluate the expression using the real and imaginary parts of the complex variable as shown by the EXAMINE command.
When you debug a program that compiled with the /CHECK=UNDERFLOW or /PARALLEL qualifier, a message appears, as in the following example:
DBG> RUN FORMS Language: FORTRAN, Module: FORMS Type GO to reach main program DBG> 
The "Type GO to reach MAIN program" message indicates that execution is supended before the start of the main program, so that you can execute initialization code under debugger control. Entering the GO command places you at the start of the main program. At that point, enter the GO command again to start program execution, as with other types of Fortran programs.
The following subtopics describe debugger support for MACRO32.
The MACRO32 language does not have expressions in the same sense as highlevel languages. Only assemblytime expressions and only a limited set of operators are accepted. To permit the MACRO32 programmer to use expressions at debugtime as freely as in other languages, the debugger accepts a number of operators in MACRO32 language expressions that are not found in MACRO32 itself. In particular, the debugger accepts a complete set of comparison and Boolean operators modeled after BLISS. It also accepts the indirection operator and the normal arithmetic operators.
Kind  Symbol  Function 

Prefix  @  Indirection 
Prefix  .  Indirection 
Prefix  +  Unary plus 
Prefix    Unary minus (negation) 
Infix  +  Addition 
Infix    Subtraction 
Infix  *  Multiplication 
Infix  /  Division 
Infix  MOD  Remainder 
Infix  @  Left shift 
Infix  EQL  Equal to 
Infix  EQLU  Equal to 
Infix  NEQ  Not equal to 
Infix  NEQU  Not equal to 
Infix  GTR  Greater than 
Infix  GTRU  Greater than unsigned 
Infix  GEQ  Greater than or equal to 
Infix  GEQU  Greater than or equal to unsigned 
Infix  LSS  Less than 
Infix  LSSU  Less than unsigned 
Infix  LEQ  Less than or equal to 
Infix  LEQU  Less than or equal to unsigned 
Prefix  NOT  Bitwise NOT 
Infix  AND  Bitwise AND 
Infix  OR  Bitwise OR 
Infix  XOR  Bitwise exclusive OR 
Infix  EQV  Bitwise equivalence 
Previous  Next  Contents  Index 