IBM Support

PM80361: COBOL R/T ENHANCEMENT FOR DEBUGGING

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Enhancement to COBOL runtime to support Debug Tool.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of IBM Debug Tool with COBOL programs  *
    *                 compiled with OPTIMIZE and either the        *
    *                 TEST(NONE) or TEST(NOHOOK,NOEJPD) options    *
    *                 who would like to use the GOTO or JUMPTO     *
    *                 Debug Tool commands.                         *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: When debugging programs compiled with   *
    *                      the OPTIMIZE option and either the      *
    *                      TEST(NONE) or the TEST(NOHOOK,NOEJPD)   *
    *                      option, the JUMPTO and GOTO commands    *
    *                      are not enabled from the Debug Tool     *
    *                      command line.                           *
    *                                                              *
    *                      JUMPTO and GOTO are not supported in    *
    *                      this case. The potential exists for     *
    *                      entering statements with the wrong      *
    *                      register values which could lead to     *
    *                      incorrect data being used, unexpected   *
    *                      paths being taken or abends.            *
    *                                                              *
    *                      The TEST(EJPD) option was introduced    *
    *                      in COBOL V4R1 to allow GOTO and         *
    *                      JUMPTO commands under the Debug Tool    *
    *                      with a reduced risk of unexpected       *
    *                      behavior when debugging an OPTIMIZE     *
    *                      compile. TEST(EJPD) generates some      *
    *                      additional instructions to ensure that  *
    *                      register values are as expected on      *
    *                      entry.                                  *
    *                                                              *
    *                      Some users still want to be able        *
    *                      use GOTO and JUMPTO commands to debug   *
    *                      OPTIMIZE compiles without TEST(EJPD)    *
    *                      and are willing to risk unexpected      *
    *                      results.                                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    Users want to be able to use the Debug Tool GOTO and JUMPTO
    commands in OPTIMIZED compiles when the SET WARNING setting is
    OFF, despite the risk of abends or other unexpected results.
    

Problem conclusion

Temporary fix

Comments

  • Debug Tool is changed with this update to allow commands GOTO
    and JUMPTO in COBOL programs that are compiled with OPTIMIZE
    and TEST(NOEJPD) or TEST(NONE), as long as SET WARNING OFF is
    also used.
    
    This functionality is provided with a strong warning that users
    may find that GOTO or JUMPTO will cause ABENDS in this
    configuration. Any type of failure when using GOTO or JUMPTO
    with a program compiled using OPT and TEST(NOEJPD) will
    not be reviewed by IBM service.
    
    For example, if a user gets an ABEND on or following a GOTO
    command while debugging a COBOL program that was compiled with
    OPT and TEST(NOEJPD), the user might want to try the same GOTO
    in a program compiled with OPT and TEST(EJPD). IBM Service will
    not investigate failures or ABENDS caused by GOTO or JUMPTO
    commands in COBOL programs compiled with OPT and TEST(NOEJPD).
    
    Without this change, Debug Tool commands GOTO and JUMPTO are
    disabled for COBOL programs that are compiled with OPTIMIZE and
    TEST(NOEJPD) or TEST(NONE), regardless of the  SET WARNING
    setting used.
    
    With this change, users can compile their code for maximum
    performance and use the GOTO and JUMPTO commands when the SET
    WARNING OFF setting is in effect, however the results of using
    the commands may be unpredictable
    
    Users will get the best behavior of GOTO and JUMPTO in programs
    compiled with OPT and TEST(NOEJPD) when the target of the GOTO
    or JUMPTO command is a paragraph name or section name (label),
    or is the first statement in the paragraph or section,
    especially if these procedures are objects of COBOL statements
    PERFORM or GO TO in the COBOL program.
    
    For fully supported (serviceable) GOTO and JUMPTO behavior,
    programs must be compiled with NOOPT and TEST or with OPT and
    TEST(EJPD). (These programs will not run as fast as programs
    compiled with OPT and TEST(NOEJPD). )
    
    Debug Tool update required:
    =====================================
      For Debug Tool V12R1, the PTF for APAR PM75819 must be applied
      to use this function.
    
    COBOL Publications Updates
    =====================================
    
    Enterprise COBOL For z/OS V4R2 Programming Guide SC23-8529-01
    
    In the COBOL Programming Guide Section describing the compiler
    options, the TEST compiler option description will be changed.
    
    After the description of the TEST suboptions, EJPD and NOEJPD,
    add the following text:
    
    
     | Notes regarding EJPD and NOEJPD:
     |  Certain levels of the Debug Tool and Language Environment
     |  runtime will allow the use of the JUMPTO and GOTO commands
     |  in debugging sessions regardless of the setting of the EJPD
     |  option  . When NOEJPD is used the commands are not enabled
     |  by the compiler and may be used only when the Debug Tool
     |  SET WARNING OFF setting is active.
     |
     |  In that case the functionality is provided with a strong
     |  warning that users may find that GOTO or JUMPTO will
     |  cause ABENDS in this configuration. Any type of failure
     |  when using GOTO or JUMPTO with a program compiled using
     |  OPT and TEST(NOEJPD) will not be reviewed by IBM service.
     |
     |  For fully supported (serviceable) GOTO and JUMPTO behavior,
     |  programs must be compiled with NOOPT and TEST or with OPT
     |  and TEST(EJPD) to enable the GOTO and JUMPTO commands.
     |  (These programs will not run as fast as programs compiled
     |  with OPT and TEST(NOEJPD). )
    
    Additionally, in the same section on the TEST option, change
    the text in the paragraphs describing Performance versus
    Debugging Capability to read as follows:
    
        Performance versus debugging capability:
    
        You can control the amount of debugging capability that you
        get and so also the program performance, as follows:
    
        - For the best performance, but with some restrictions on
          debugging, compile using OPTIMIZE and
          TEST(NOHOOK,. . .,NOEJPD).
    
          When you use the Dynamic Debug facility of Debug Tool
          (SET DYNDEBUG ON), you can interactively debug your
          program even if the program has no compiled-in debug
          hooks.
    
          With TEST(NOHOOK,. . .,NOEJPD), you can also compile
          using OPTIMIZE (either OPT(STD) or OPT(FULL)) for a
          more efficient program, but with some restrictions on
          debugging:
     |       - The Debug Tool commands JUMPTO and GOTO are not
               enabled.
             - Except for the DESCRIBE ATTRIBUTES command, Debug
               Tool commands cannot refer to any data item that
               was discarded from a program by the OPT(FULL)
               option.
             - The Debug Tool command AT CALL entry-name is not
               supported.
    

APAR Information

  • APAR number

    PM80361

  • Reported component name

    LE COBOL LIB

  • Reported component ID

    568819802

  • Reported release

    760

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2013-01-10

  • Closed date

    2013-02-08

  • Last modified date

    2013-03-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK91517 UK91518 UK91519

Modules/Macros

  •    IGZIVGO  IGZIVID
    

Publications Referenced
SC23852901    

Fix information

  • Fixed component name

    LE COBOL LIB

  • Fixed component ID

    568819802

Applicable component levels

  • R760 PSY UK91517

       UP13/02/12 P F302

  • R770 PSY UK91518

       UP13/02/12 P F302

  • R780 PSY UK91519

       UP13/02/12 P F302

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Line of Business":{"code":"LOB16","label":"Mainframe HW"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG27M","label":"APARs - z\/VM environment"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.6"}]

Document Information

Modified date:
22 January 2021