Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace COBOL Compilers
Created by Guest
Created on Nov 18, 2019

Enterprise Cobol - Generate "no-op" binary for EXIT statement when TEST option is active

When the EXIT statement is used in a PARAGRAPH, and that PARAGRAPH is not the end of scope of a PERFORM (THRU), the compiler does not generate any binary code.

This complicates the debug by not allowing to set a breakpoint on the EXIT statement concerned:
- the breakpoint is assigned to the first binary instruction following the EXIT statement, usually in another PARAGRAPH
- source lines that share the same memory address (OFFSET) are all affected by the breakpoint (usually PARAGRAPH / EXIT sequences).

We suggest that a "no-operation" binary instruction be generated on these EXIT statements when the program is compiled with the TEST option activated (in all forms of the TEST option), even when OPTIMIZE option is also active.

This would assign a specific memory address to each PARAGRAPH / EXIT construct so that the breakpoint is clearly assigned to and only to the relevant EXIT statement.

Same remark for CONTINUE statements when they are the only statements in a PARAGRAPH.

Idea priority Low
  • Guest
    Reply
    |
    Apr 29, 2020

    We have re-examined the issue mentioned in this RFE and it can be resolved by stopping 1 line before the "exit" statement.

    Introducing extra no-ops results in a performance hit. As a result, this RFE is being rejected.

    Thanks.

  • Guest
    Reply
    |
    Apr 24, 2020

    Thank you for your recent response. We are reviewing it and will update shortly.

  • Guest
    Reply
    |
    Dec 19, 2019

    Hi,
    We want this functionality to be available at all levels of optimization.
    We need to debug / trace programs that are delivered in production and compiled with an optimization level greater than zero, (tested in development environment).
    We accept that this functionality is conditional on the use of the TEST option.
    Note that for other reasons, we also compile with the TEST(NOEJPD) and OPTIMIZE(1) options to remove certain debugging problems on programs delivered in production, (TEST(NOEJPD) does not degrade performance too much, while facilitating diagnostics).

  • Guest
    Reply
    |
    Dec 17, 2019

    Hi,

    Thank you for submitting this RFE.

    May we know if it would be ok if we did this only at OPT(0) ?

    Regards,
    IBM

  • Guest
    Reply
    |
    Nov 21, 2019

    @fswarbrick
    Our Cobol programs are generated by IBM VisualAge Pacbase (deprecated :-( ) and we don't control how code is generated.
    The generated code is full of "PARAGRAPH-NAME. EXIT." and "GO TO PARAGRAPH-NAME." (don't generate PERFORM even if code is "structured").

  • Guest
    Reply
    |
    Nov 19, 2019

    This seems a fine requirement. But have you tried using EXIT PARAGRAPH or EXIT SECTION instead of just EXIT? I believe this does what you are looking for.