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).
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:
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 an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
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.
See this idea on ideas.ibm.com
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 |
By clicking the "Post Comment" or "Submit Idea" button, you are agreeing to the IBM Ideas Portal Terms of Use.
Do not place IBM confidential, company confidential, or personal information into any field.
Confer to « PH35652: IMPROVE COBOL OFFSET REPORT USABILITY » fix for Enterprise COBOL V6R3.
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.
Thank you for your recent update. We are reviewing it and will update you shortly.
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.
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.
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.
Attachment (Description): Sample program compiled with INLINE and OFFSET option
Attachment (Description): Sample program listing compiled with INLINE and LIST options
Attachment (Description): Sample program