View previous topic :: View next topic
|
Author |
Message |
sasti_a
New User
Joined: 20 Oct 2008 Posts: 4 Location: UK
|
|
|
|
Hi,
I have got a S0C7 abend in my PL/1 program which interacts with both IMS and DB2. The output gives the offset value at which the abend occurs. The program is too big to analyse. So, it will be helpful if I know how to find the statement in which the program had abend by using the offset value.
Thanks,
Sasti |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
If the program was compiled with OFFSET or LIST option, you can use the offsets provided in the compile listing to find the statement. If not, the easiest way to solve the problem may be to recompile the code with one of these options. |
|
Back to top |
|
|
sasti_a
New User
Joined: 20 Oct 2008 Posts: 4 Location: UK
|
|
|
|
Actually, I have the offset values appearing in both the spool output as wella sCompiler listing. I f I search for the offset value I got from spool, am not able to trace anything.
I have got offset value in spool outpiu like this '00001ACC'.If I search the compiler listing with this offset value am not able to find anything. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
You should be able to find a bracket -- a verb with a value less than 00001ACC and the next with a value larger than 00001ACC. That tells you the statement with the problem; proceed from there to look at the variables for that statement. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
If I search the compiler listing with this offset value am not able to find anything. |
It is quite common for a single source instruction to generate multiple assembler instructions. The abend most likely occurred in one of these rather than the instruction precisely at the offset of the abend.
As Robert suggests, you need to look for the instruction address before and after the abend offset.
Something else that is fairly quick to do is to look at the data fields (being used by the code that abends) in the dump and determine which field has the invalid value. |
|
Back to top |
|
|
|