View previous topic :: View next topic
|
Author |
Message |
nkothako
Active User
Joined: 26 Nov 2008 Posts: 125 Location: chennai
|
|
|
|
ex :
Code: |
4000-write-para.
< Some imperative statements > < problem location >
Write FICOMMON from WS-FCOMMON |
Note: The above Para was called by so many other paras in the abended pgm.
So is it possible to find out
1) which is the Para-name in the prog which called the 4000-write-para at that instance.
2) similarly for other paragraphs, can we find out calling para which ever we want at that instance in the pgm if it is called more than once |
|
Back to top |
|
|
ashutosh.pr
New User
Joined: 13 Apr 2007 Posts: 36 Location: Pune
|
|
|
|
If I get the question right, and if the logic can be changed, how about something like this:
Code: |
1000-para.
....
....
Move 1000 to ws-loc
Perform 4000-write-para
2000-para.
....
....
Move 2000 to ws-loc
Perform 4000-write-para
...
...
4000-write-para.
< Some imperative statements > < problem location ><ws-loc>
Write FICOMMON from WS-FCOMMON |
Regds,
Ashutosh |
|
Back to top |
|
|
Terry Heinze
JCL Moderator
Joined: 14 Jul 2008 Posts: 1249 Location: Richfield, MN, USA
|
|
|
|
Alternatively, see the section in the Language Reference manual concerning DEBUGGING declarative. |
|
Back to top |
|
|
nkothako
Active User
Joined: 26 Nov 2008 Posts: 125 Location: chennai
|
|
|
|
Thanks for the replies. My system was developed long back.. so all the pgms are not coded with the above options. so there is no other way to trace even in dumps like (sysudump or ceedump or abend-aid). |
|
Back to top |
|
|
ashutosh.pr
New User
Joined: 13 Apr 2007 Posts: 36 Location: Pune
|
|
|
|
What exactly are the values in <problem location >? Is it a field value that is displayed?
Regards,
Ashutosh |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
If you have a run-time analyzer such as STROBE or APA at your site, and the program is compiled to use the tool, you can do such traces. If you do not have such a tool, you can retrofit the code by adding debug statements as has been suggested. If neither of these applies, you may be able to use the trace table in the system dump to track the program flow -- but it is not an easy thing to correlate trace table entries to program code. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Can you compile a test version of the code that has the abend?
If yes, add diagnostic code to your test version and determine what is wrong.
If no, someone needs to do whatever is necessary to be able compile and test the code. If this abend is from a long-hiding error, it will need to be corrected which means there must be a way to compile and test. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
THE OLD FASHION WAY
Assuming your version/release is a minimum of COBOL2, compile your program to produce the Assembler expansion, specifying compile options (LIST,NOOFFSET).
Review the dump and find the information displayed about the PSW (Program Status Word).
Example -
Code: |
PSW 078D2000 18A42DE0 00040011 00A43000
|
The second word from the left, represents the address of the NSI (Next Sequential Instruction). To calculate the address of the offending instruction, look for the ILC (Instruction Length Code) in the PSW display and subtract this value from the address of the NSI, which in this example is X'18A42DE0'.
At this calculated address, if you find byte-01 equal to X'F0' or any value between X'F8' and X'FD', then this represents a packed-decimal instruction and the abend will probably indicate a S0C7 has occurred.
END OLD FASHION WAY
Bill |
|
Back to top |
|
|
|