A fix is available
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
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