View previous topic :: View next topic
|
Author |
Message |
arnab
New User
Joined: 13 Mar 2006 Posts: 59 Location: UK
|
|
|
|
Hello,
We have some C programs being called from PLI modules. These are used for some specific calculations. We received an abend yesterday wherein the PLI program failed in a C module at some specific offset. I have the compile listing of the C program but am unable to find the line number from the offset shown in the DUMP:
PU Offset Entry E Addr E Offset
+0000081C CEEKKMRA 06F63EA8 +0000081C
+000000C2 IBMRKDM 119E0E18 +000000C2
+000005FC #BELCH 003A24B8 +000005F4
+0000142C ERR ON-unit 000E4418 +000000B4
+0000065A IBMRERPL 00C769A0 +0000065A
+0000013A CEEEV010 119C7000 +0000013A
+000017D0 CEEHDSP 06F36180 +000017D0
+3FEE68A8 CBOXAA 00119758 +3FEE68A8
+00000278 QICGDD 0027CAD8 +00000270
In the above traceback information the offset for the failing instruction for the C module CBOXAA is +3FEE68A8.
I am not able to find the abending line number from the compile listing of the C program.
Is there any specific method of finding the line number from the offset provided in the traceback information ?
Many thanks in advance.
Please let me know if you would need any more information.
Thanks..! |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Please post the diagnostic info presented when the abend occurred (the lines with message numbers describing the abend).
Depending on the abend you may not be executing "your code" when the abend occurred. |
|
Back to top |
|
|
arnab
New User
Joined: 13 Mar 2006 Posts: 59 Location: UK
|
|
|
|
From JESMSGLG:
IEA995I SYMPTOM DUMP OUTPUT 640
USER COMPLETION CODE=4039 REASON CODE=00000000
TIME=22.14.45 SEQ=35866 CPU=0000 ASID=017D
PSW AT TIME OF ERROR 078D1E00 86F460D6 ILC 2 INTC 0D
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW 06F460D0 - 00181610 0A0D58D0 D00498EC
AR/GR 0: 80D488D0/84000000 1: 00000000/84000FC7
2: 00000000/004837F8 3: 00000000/00000002
4: 00000000/06F3AD84 5: 00000000/0048335C
6: 00000000/00000000 7: 00000000/004802A8
8: 00000000/004837F8 9: 00000000/00484ED6
A: 00000000/0048335C B: 00000000/06F46000
C: 00000000/003FAB40 D: 00000000/00485FF8
E: 00000000/86F46032 F: 00000000/00000000
END OF SYMPTOM DUMP
From PLIDUMP:
Condition Information for (DSA address 004883C0)
CIB Address: 00488D98
Current Condition:
CEE3204S The system detected a protection exception (System Completion Code=0C4
Location:
Program Unit: Entry: CBOXAA Statement: Offset: +3FEE68A8
Machine State:
ILC..... 0000 Interruption Code..... 0004
PSW..... 078D2E00 C0000000
GPR0..... 00488478 GPR1..... 00488460 GPR2..... 40000000 GPR3..... 801197
GPR4..... 1270C028 GPR5..... 1270C028 GPR6..... 00483378 GPR7..... 004883
GPR8..... 004831BE GPR9..... 00483110 GPR10.... 00000001 GPR11.... 000000
GPR12.... 003FAB40 GPR13.... 004883C0 GPR14.... 801198C4 GPR15.... 400000
Is it this information ? |
|
Back to top |
|
|
arnab
New User
Joined: 13 Mar 2006 Posts: 59 Location: UK
|
|
|
|
I Just noticed that the PU addr and offset are same as Entry Address/offset. Does this mean that it failed while trying to load the C module(i.e CBOXAA).
The linkcard has:
MODE AMODE(31),RMODE(24)
Do I need to change it to RMODE(ANY) ? |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
Is it this information ? |
Yes. The 0c4 (which was the kind of error i was looking for) may not be "your code" but an interface/link issue.
Quote: |
Do I need to change it to RMODE(ANY) ? |
I'd suggest you talk with the people who support the compiler/link editor. Your link should be the same as other similar links - there should be standard compile/link jcl that is used.
Have you checked the linkedit to make sure there are no errors/warnings?
Did this program previously call the C module successfully? If yes, what changed in the program or the link since when it worked?
If this is a new PLI program, i'd suggest you compare this to one that works and make sure they are done the same way. |
|
Back to top |
|
|
arnab
New User
Joined: 13 Mar 2006 Posts: 59 Location: UK
|
|
|
|
Thanks ..!
This is not a PLI program and strangely it doesn't fail very often. This code failed only for a particular case , then ran fine for the remaining. There has not been any recent changes to the program. This problem seems to be existing for a long time and was not analyzed earlier as it only fails once/twice a month. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
This is not a PLI program and strangely it doesn't fail very often. This code failed only for a particular case , then ran fine for the remaining. There has not been any recent changes to the program. This problem seems to be existing for a long time and was not analyzed earlier as it only fails once/twice a month.
|
What this is telling me is that the S0C4 is data-based, that is, there is a path through your code that is only exercised every now and then but when it does the program fails. Changing RMODE may or may not make a difference to the problem; it depends on what's causing the failure. If the problem is the data causes a reference to the 20000th element of a 5000 element array, no RMODE would ever help. I would expect more frequent failures if RMODE was involved. |
|
Back to top |
|
|
arnab
New User
Joined: 13 Mar 2006 Posts: 59 Location: UK
|
|
|
|
Thanks Robert. |
|
Back to top |
|
|
|