Restrictions for debugging a LangX COBOL program

When you debug LangX COBOL programs the following general restrictions apply:

  • When you compose z/OS® Debugger commands, all expressions must be enclosed in apostrophes (')
  • The AT CALL command is not supported
  • The AT EXIT command is not supported
  • The STEP RETURN command is not supported
  • You cannot use the LIST command on a level-88 variables.
  • You cannot use the assignment statement to alter the contents of a level-88 variable.
  • If you enter a STEP command when stopped on a statement that returns control to a higher-level program, the STEP command acts like a GO command.
  • The only path-points for the AT PATH statement that are supported in a LangX COBOL program are Entry and Label.
  • There are behavioral differences between LangX COBOL programs and other COBOL programs. LangX COBOL programs behave more like assembler programs than COBOL programs in many situations. For example, in COBOL, a CU is not known to z/OS Debugger until it is called, even if it is statically link-edited into the same load module as the calling CU. However, LangX COBOL CU's are all known to z/OS Debugger when the module is loaded.
  • If you are debugging a non-Language Environment® VS COBOL II program that uses the CALL statement to invoke a Language Environment program, you cannot stop at or debug the Language Environment program.
  • The output of the DESCRIBE ATTRIBUTES command might not match the attributes originally coded in the following situations:
    • For packed decimal numbers (COMP-3) the PIC attribute always indicate an odd number of digits. This might be one more digit than was coded in the original PIC.
    • The only non-numeric PIC code that is displayed by z/OS Debugger is 'X'.
  • Under CICS®, the initialization of a non-Language Environment COBOL transaction is single-threaded; therefore, when multiple users try to concurrently debug a non-Language Environment COBOL program, the CICS environment initializes one non-Language Environment COBOL transaction at a time. Consider the following example:
    1. Three users start a transaction that runs non-Language Environment COBOL program.
    2. The transaction that started first is initialized first. The other two transactions have to wait until that initialization is completed.
    3. After the initialization of the transaction that started first is done, the transaction that started second is initialized. While this transaction is being initialized, the user of the transaction that started first can run his z/OS Debugger session and the user of the transaction that started third continues to wait.
    4. After the initialization of the transaction that started second is done, the transaction that started third is initialized. While this transaction is being initialized, the users of the other two transactions can run their z/OS Debugger sessions.
    5. After the initialization of the transaction that started third is done, all three users can run their z/OS Debugger sessions, independently, for the same non-Language Environment COBOL program.