I want to know whether the PSW & R14 contents are used only to find the recently executed EXEC CICS statement or it can be used to find non-CICS (COBOL for eg.) statements as well.
I am reading CICS dump analysis. I wrote a sample program(COBPRG) to produce ASRA abend. I included a cobol statement which divides an integer by 0.
Now, I am trying to locate my failed instruction from the CICS dumps. When I looked at the load point address and the return address of the failed statement, the load point seemed to be higher than the return address of the failed statement. And so, I could not subtract load point address from the return address of the failed instruction in order to get the offset in my program.
These are my trace entries...
LD 0001 LDLD ENTRY ACQUIRE_PROGRAM 1025D6B0
LD 0002 LDLD EXIT ACQUIRE_PROGRAM/OK 8FA143C0,0FA143C0,13A8,REUSABLE,ERDS
AP 1940 APLI ENTRY START_PROGRAM COBPRG,CEDF,FULLAPI,EXEC,NO,10022C24
SM 0301 SMGF ENTRY GETMAIN 84A8,YES,RUWAPOOL,TASK31
SM 0302 SMGF EXIT GETMAIN/OK 10123868
and the return address of the failing instruction...
Joined: 06 Jun 2008 Posts: 8280 Location: Dubuque, Iowa, USA
AP 0781 SRP *EXC* - ABEND_ASRA PROGRAM(COBPRG ) OFFSET(00000490) EXEC_KEY(CI
Why not just use the provided offset?
There should be a lot more trace entries for your program -- the initial GETMAIN is just allocating storage for your program; there's typically a number of trace entries (sometimes hundreds) for a CICS program.
Also, if your CICS region is providing a dump, using IPCS would be the best analysis tool. The precise verb to use depends upon the CICS release but that's not hard to find.
I got these internal trace entries from the CICS dumps. I formatted it by VERBX DFHPD650 'TR=2' as my CICS version is 3.2
The load point address of my program is 0FA143C0 and the return adresses captured in all the trace entries are RET-8F00C7A8, RET-8EDA7876, RET-8EDA7876, RET-8F00C7A8 and RET-8F00C7A8. All these return addresses are less than 0FA143C0. I am bit ambiguous why it looks so.