MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Analysisng the value in a variable in CEEDUMP

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Problem Determination
View previous topic :: View next topic  
Author Message
mainframemouli
Beginner


Joined: 23 Feb 2005
Posts: 87
Topics: 33

PostPosted: Fri Sep 23, 2005 8:50 am    Post subject: Analysisng the value in a variable in CEEDUMP Reply with quote

Before expalainig the problem let me clear the following things.

1. I have the idea of the way to solve SOC7 abend , by HEXLOC and getting the Nearest OFFSET.
2. My shop is having the ABEND-AID also , so i can get the Formatted way of error description.

My problem is not regarding solving of SOC7 but regarding the way to analyse the CEEDUMP.

But I don't know how to check the CEEDUMP.

I got the SOC7 Abend
Heres the sysout information for it.

The system detected a data exception (System Completion Code=0C7).
From compile unit XSRTPGM at entry point XSRTPGM at compile unit offset +00000878 at entry offset +00000878
at address 20400DF8.

with the Entry offset i captured the CEEDUMP information as follows

Program Unit: XSRTPGM Entry: XSRTPGM Statement: Offset: +00000878 - OFFSET
Machine State:
ILC..... 0006 Interruption Code..... 0007
PSW..... 478D1000 A0400DFE
GPR0..... 00000001 GPR1..... 20678E00 GPR2..... 2066A0B8 GPR3.....
GPR4..... 20666280 GPR5..... 20678E00 GPR6..... 00000000 GPR7.....
GPR8..... 00016A80 GPR9..... 20666100 GPR10.... 20400688 GPR11....
GPR12.... 2040067C GPR13.... 00029030 GPR14.... 8004E8F0 GPR15....
Storage dump near condition, beginning at location: 20400DE8
+000000 20400DE8 FA10D110 A0DDF321 2030D110 96F02032 FA202000 A0DDF82

20666280
00000000
20400988
20678E00

20002000 D507209E |..J...3...J.o0........8.....N...|

How to proceed from here , i want the variable which caused the problem and its last stored value.

I have searched this Forum for all the details regarding this , and checked the links given by Kolusu and some others also....

can anyone please guide me in this...
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Sep 23, 2005 9:09 am    Post subject: Reply with quote

All you really need from CEEDUMP (or, anything else) is the abending offset. Pick it and search in your COBOL program compile listing (you would have compiled your program with LIST,NOOFFSET compile options). That will get you the problematic instruction and then the problematic statement.

PSW stands for Program Status Word that is the address of the next sequential instruction to be executed. The ILC stands fro Instruction Length Code. X'A0400DFE' - 6 = X'A0400DF8' which is the offending instruction. The storage dump shown begins with 20400DE8 whereas the PSW begins with A. You can ignore the high order bit as your program would have been running in 24-bit mode.

If you count 8 bytes from 20400DE8, you would be at X'FA202000 A0DD' The FA is instruction for Add Packed. This means, you had a S0C7 when you were adding two packed decimal numbers.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
SureshKumar
Intermediate


Joined: 23 Jan 2003
Posts: 211
Topics: 21

PostPosted: Fri Sep 23, 2005 10:06 am    Post subject: Reply with quote

mainframemouli,
Go to the following link. It may not solve your problem but gives a clear picture on dump handling. It deals more with CICS but the concept is the same. Thanks

http://cics.ufl.edu/trandump.html#data
Back to top
View user's profile Send private message
mainframemouli
Beginner


Joined: 23 Feb 2005
Posts: 87
Topics: 33

PostPosted: Mon Sep 26, 2005 8:34 am    Post subject: Reply with quote

Quote:
If you count 8 bytes from 20400DE8, you would be at X'FA202000 A0DD' The FA is instruction for Add Packed


How you arrived at this Cogito-Ergo-Sum , can you explain about that...

and suresh kumar , my cobol listing doesn't have this assembler statement as like the below , is their any compiler option i need to give for that.

MVC 544(23,13),1074(10) TS2=40 PGMLIT AT +946
000C1E 4140 D220 LA 4,544(0,13) TS2=40
000C22 5040 D210 ST 4,528(0,13) TS2=24
000C26 4140 23A2 LA 4,930(0,2) WS-RECEIVE-AREA
000C2A 5040 D214 ST 4,532(0,13) TS2=28
PP 5688-197 IBM COBOL for MVS & VM 1.2.2 DCNESW00 Date 08/15/2000 Time 12:47:56 Page 42
000C2E 4140 2044 LA 4,68(0,2) WS-RECEIVE-LENGTH
000C32 5040 D218 ST 4,536(0,13) TS2=32
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Mon Sep 26, 2005 8:41 am    Post subject: Reply with quote

mainframemouli,

Cogito-ergo-sum has already mentioned about the compiler options.

Quote:

(you would have compiled your program with LIST,NOOFFSET compile options).


Basically you need to add this line before ID divison and compile the pgm which will give you the assembler listing of the pgm.

Code:

CBL LIST


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
ANIL SARATHY
Beginner


Joined: 30 Aug 2005
Posts: 88
Topics: 3
Location: Syracuse,New york

PostPosted: Tue Sep 27, 2005 12:04 am    Post subject: Reply with quote

LIST and OFFSET compiler options are mutually exclusive.

If u specify List , other will be Noffset and vice versa. If you use both, LIST will be ignored.

LIST is used to produce listing of the assembler language expansion of your code. With OFFSET, the procedure portion of the listing will contain line numbers, statement references, and the location of the first instruction generated for each statement.

In general OFFSET is used as it generate less lines or data in compiler listing.

But for abend analysis , always go with LIST , as it will give expansion.


Things to do :

1)If the sysout doesn't show offset , then u have to calculate it using
Offset= PSW - EPA
Program Status Word and Entry Point Address can be found in CEEDUMP

2) find offset from sysout
3) Give find on "HEXLOC" in compiler listing
4) Find for the VERB whose HEXLOC is equal to the offset you got in sysout and note the LINE #.
or
If there is no VERB which is having same offset, then find the verb with the next larger offset and go back one verb.

5) find on line # . Now you are on abended line.
_________________
Anil Sarathy
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
mainframemouli
Beginner


Joined: 23 Feb 2005
Posts: 87
Topics: 33

PostPosted: Tue Sep 27, 2005 1:43 am    Post subject: Reply with quote

Anil,
As i told earlier I know the process of giving HEXLOC and getting the VERB , the problem is not with solving the SOC7. I Know the verb where it get the abend....

But about the CEEDUMP analysis.....
Back to top
View user's profile Send private message
ANIL SARATHY
Beginner


Joined: 30 Aug 2005
Posts: 88
Topics: 3
Location: Syracuse,New york

PostPosted: Tue Sep 27, 2005 1:53 am    Post subject: Reply with quote

"its last stored value".

i don't think u can find the value in the variable which has caused the abend , by looking at the abend
_________________
Anil Sarathy
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
rony&ruby
Beginner


Joined: 27 May 2005
Posts: 12
Topics: 1
Location: China

PostPosted: Sun Oct 02, 2005 9:47 am    Post subject: Reply with quote

why not use FDUMP option in your compiling.
After SC07, sysout will tell you which statement in CBL list cause data error.
_________________
Ron Yang
Back to top
View user's profile Send private message MSN Messenger
vak255
Intermediate


Joined: 10 Sep 2004
Posts: 384
Topics: 79

PostPosted: Thu Jul 05, 2007 12:51 pm    Post subject: Reply with quote

I handle PL/1 programs.
Is the above procedure applies to PL/1 programs too.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Problem Determination All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group