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 Apr 27, 2019

Enterprise Cobol V6 - Problems of association between source lines and instruction addresses for the inlined paragraphs

We found several issues regarding the assignment of an address to a source line or paragraph name at the level of inlined PERFORM (options INLINE and OPTIMIZE(1|2) ).

This creates problems for debugging: trace, dump analysis, performance analysis, especially when using the OFFSET compilation option :
- some inlined statements can not be traced
- breakpoints on inlined statements do not work
- in dump analysis, the inlined statements can not be determined
- in code coverage, the execution count of the inlined statements is wrong
- in performance measurement the CPU load is not correctly assigned to inlined statements

1) Compiling with the OFFSET option, the source lines of the inlined paragraphs receive only one offset, but the binary code associated with these source lines is present several times.
It would be necessary for the OFFSET table to display as many pairs (source lineid, location) as inlined code occurrences. (This was successfully tested with third party debug tools by complementing the OFFSET table for all inlined statements).

2) Compiling with the LIST option, we notice that the source line of inlined PERFORM either do not appear in the listing of the binary code, or appear with an erroneous address.

For OFFSET or LIST compilation option, each PERFORM statement that has been replaced by an inlining of the code should be associated with either the address of the first inlined statement or associated with a NOP binary instruction before the inlined code.

In sample in attachement for OFFSET compilation option :
- first "perform add-I1-to-I2-giving-I3" at lineid 000021 is associated with a wrong location 000314 (it should be associated with location 0002F4).
- second "perform add-I1-to-I2-giving-I3" at lineid 00027 is associated with an wrong location 00045E (it should be associated with location 000448).

In sample in attachement for LIST compilation option :
- first "perform add-I1-to-I2-giving-I3" at lineid 000021 is not listed (not tracable, not breakable).
- second "perform add-I1-to-I2-giving-I3" at lineid 00027 is misplaced : after inlined code ("out of order" execution on trace)

Idea priority Medium
  • Guest
    Reply
    |
    Apr 18, 2021

    Confer to « PH35652: IMPROVE COBOL OFFSET REPORT USABILITY » fix for Enterprise COBOL V6R3.

  • Guest
    Reply
    |
    Apr 29, 2020

    Hi,

    What other clients have been doing for this kind of scenario is to use OPT(0) for debugging purposes; and then use higher opt for production.

    Please consider using this a solution to this RFE.

    Unfortunately, it won't be possible to have a fully debuggable optimized binary.

    Thanks.

  • Guest
    Reply
    |
    Apr 24, 2020

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

  • Guest
    Reply
    |
    Jun 5, 2019

    Programs tested with Compuware Xpediter / Abend-AID, and Macro4 TraceMaster / DumpMaster.
    Options: OMTIMIZE(1), NOTEST, INLINE, OFFSET

    Lack of informations in OFFSET/LOCATION doesn't permit de trace / debug inlined statements (if same statements are inlined more than once) : same statement can occurs several time in binary code, but get only one OFFSET/LOCATION, so debugger can't identify Cobol inlined statement in trace or abend.

    Problem exists also for PERFORM statements that are not reported with good OFFSET/LOCATION.

  • Guest
    Reply
    |
    Jun 5, 2019

    May we know which tools your currently using that has these issues?
    If CPW, you will have to get in touch with their devs to analyse this. The CPW devs can contact us if they think this is a compiler bug of some sort.

  • Guest
    Reply
    |
    May 1, 2019

    Note: when compiling with OPTIMIZE(1) + TEST(NOEJPD) options, the locations assigned to PERFORM statements that are inlined are correct, (they correspond to the first statement of the inlined paragraph), and the generated binary code is identical to the binary code generated with the OPTIMIZE(1) + NOTEST options.

  • Guest
    Reply
    |
    Apr 27, 2019

    Attachment (Description): Sample program compiled with INLINE and OFFSET option

  • Guest
    Reply
    |
    Apr 27, 2019

    Attachment (Description): Sample program listing compiled with INLINE and LIST options

  • Guest
    Reply
    |
    Apr 27, 2019

    Attachment (Description): Sample program