The thread ended with no conclusion, and I would like to rephrase the question: Is there a common way to trace back the perform stack in a module?
An area in the DSA is designated Perform Save Cells, the location is listed in the compiler output, but do anyone know how to retrieve the return addresses for each perform from this area?
Doing some research on the topic I found this patent description(open the pdf-link), but it is based on s/370 MVS architecture, and I guess it cannot be taken as actual documentation of the architecture.
If a cookbook like method can be employed for this, it would be easier than to trace the condition variables in the program branches.
I allway define a EyeCatcher area in my programms, Cobol and Assembler. In there, several Fields are defined to store the actual section-name. These fields discribe the hierarchical structure of the performs.
In case of abend, this is for example:
S00 S05 B05 B10
Means: actual section where abend occurs is B10
B10 was performed from B05
B05 was performed from S05
S05 was performed from S00
S00 is main-procedure of programm
I followed the very old SPL architecture of IBM and did it my own way.
I also codes some macros for section start and end, so that i can run my programms in a kind of trace-mode. That allows me to check the section flow during program run.
I think, every experienced guy of us has his own little helpers.
And, in fact of nothing helps, there must alway be a superb pleasant tempered bottle of red wine in immediate proximity.