View previous topic :: View next topic
|
Author |
Message |
rohit510
New User
Joined: 08 Jan 2008 Posts: 18 Location: delhi
|
|
|
|
Hi All,
I do like to know how to look for the exact data that is causing the SOC7 abend with the help of PSW and Dump Master. All i have got is the spool output + listings +DumpMaster. There is no Abend Aid installed on my system. I am able to figure out the 'verb' by looking at the offset. I need to know the data which is causing this .
More over w.r.t PSW, how useful is this ? In the below code, what does '878BA996' mean ?. It is not showing me the offset even when i subtract the Instruction Length mentioned - 2.
PSW AT TIME OF ERROR 078D1000 878BA996 ILC 2 INTC 0D
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW 078BA990 - 00181610 0A0D58D0 D00498EC
does ' DATA AT PSW ' mean the data at the time of failing instruction. How to look at it and which word shoud i consider ?
Looking forward for much needed advice. Thanks in advance for all your time. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
I need to know the data which is causing this . |
Using the offset, look at the instruction that caused the 0c7. Find the displacement of the problem field(s) by using the displacement shown in the compile list.
When you go to that place in the dump, you will see the data that causes the 0c7.
I'd suggest you talk to one of your peers or some support person about Dump Master specifics. |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
Do you know assembler?
What does "w.r.t" mean? |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
CICS Guy wrote: |
What does "w.r.t" mean? |
With Respect To. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8697 Location: Dubuque, Iowa, USA
|
|
|
|
I don't know Dump Master so can't help you there, but you might want to find and peruse SG24-6988, ABC's of z/OS Systems Programming Volume 8. It has a lot about dumps and analyzing them (albeit with IPCS). |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
Back to top |
|
|
rohit510
New User
Joined: 08 Jan 2008 Posts: 18 Location: delhi
|
|
|
|
Hi Dick scherrer,
Thank you for the reply...As i have already mentioned , i am able to locate the verb with the help of offset. However where do i look for the dispacement ,especially when i do not have abend aid to assist me ?. Is there a way where i can see the data causing the abend would be present in the Dump ?
Thank you. |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
Hello,
S0C7 is a data exception. This most commonly means that a numeric value has had something done to it that results in it being placed in an alphanumeric field. So start with your numeric fields. Pic 9(nn) fields are very forgiving, so start your research with your COMP fields (COMP, COMP-3, etc.).
Because you got a S0C7, I can safely assume this is a batch job and you are dealing with standard input files. Input files have copybook layouts. Look at the copybook. Find the "packed" (COMP) fields. Using the layout positions, use File-Aid to scan the file for non-numeric data in these fields.
File-Aid option 8 from the main menu allows you to get a file layout from copybook. This tells you what position the particular field starts in and how long it is. Here is an example:
Code: |
09 DL-VAR-NUM01-05 PIC S9(05)V COMP-3. ...
09 DL-VAR-NUM02-04 PIC S9(04)V COMP-3. ...
09 DL-VAR-NUM03-03 PIC S9(03)V COMP-3. ...
09 DL-VAR-CH01-01 PIC X(01). ...
09 DL-VAR-CH02-18 PIC X(18). ... |
Here are three packed fields. I go to File-Aid F.8 to get the copybook layout and find where these fields are in the actual file:
Code: |
File-AID ---------------------- VIEW LAYOUT ------------ Row 24 to 44 of 1,850
COMMAND ===> SCROLL ===> CSR
Layout: MVD.ENVA.PANVALET(DLVAR512)
FIELD
--------- FIELD LEVEL/NAME ---------- -PICTURE- -NUMBER START END LENGTH
9 DL-VAR-DT05 X(10) 20 53 62 10
9 DL-VAR-NUM01-05 S9(5) 21 63 65 3
9 DL-VAR-NUM02-04 S9(4) 22 66 68 3
9 DL-VAR-NUM03-03 S999 23 69 70 2
9 DL-VAR-CH01-01 X 24 71 71 1 |
This tells me that I am looking for my first packed field to start in column 63 for a physical length of 3, ending in column 65. (63, 64, 65 makes three physical columns).
Then, again using File-Aid, I would look for nonnumeric values in these columns. Remember that characters are less than numbers in the mainframe world, so I can search any or all of these columns for data less than zero (for the purpose of this example, I took the liberty of using a different file):
Code: |
File-AID ------------- Unformatted Selection Criteria ------ Row 1 to 1 of 1
COMMAND ===> SCROLL ===> CSR
Use END to continue, CANCEL to return to main screen.
AND
Cmd /OR Position Length RO Data Value
--- --- -------- ------ -- ----------------------------------------------------
___ 9 3 LT T'0'
************************** END OF SELECTION CRITERIA ************************** |
And this gives me my offending record (or records, as the case may be).
Code: |
File-AID - Edit - MV603.NON.NUMERIC -----------------------------------------------------------------------------------------------
COMMAND ===> SCROLL ===> CSR
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0-
****** ******************************************************* TOP OF DATA ****************
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 31 RECORD(S) NOT SELECTED
000001 D5013290ABC531074057839092061C E3C
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 44 RECORD(S) NOT SELECTED
****** ****************************************************** BOTTOM OF DATA ********* |
PS. Courtesy Socer_dad |
|
Back to top |
|
|
rohit510
New User
Joined: 08 Jan 2008 Posts: 18 Location: delhi
|
|
|
|
Hi Anuj,
Thank you for the quick turn around. I have seen the site suggested by You. Usually i try to figure out the SOC7 in the way dealt. However i like to see the offending data in the spool itself with the help of Dump Master. Is there a way rround it.....
In the program i tried to move a s9(3) comp-3 value into a 9(3) and x(3) variables simultaneously .....has this got to do something to do with this ?
Thank you. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
In the program i tried to move a s9(3) comp-3 value into a 9(3) and x(3) variables simultaneously .....has this got to do something to do with this ? |
Your problem in a nutshell is that somewhere you are trying to use a field that is defined as numeric and that field has invalid content. There is no problem with multiple receiving fields in a cobol move because the generated code actually contains a separate move for each target field.
Quote: |
However where do i look for the dispacement |
The displacement of the variables is available in the compile listing. Look on the right side of the line where the variable is defined and the displacement should be there.
Quote: |
However i like to see the offending data in the spool itself with the help of Dump Master |
Keep in mind that many/most of us who offer trouble shooting help had to debug dumps before there were such products as abendaid and dump master. . . Look at the underlying generated assembler instructions. From the instructions, you can see many things. It will take some time to learn how to do this - it is not an overnight learning. . . |
|
Back to top |
|
|
rohit510
New User
Joined: 08 Jan 2008 Posts: 18 Location: delhi
|
|
|
|
Hi Dick,
Your experience is really paying off...I get to know new things from it. You have mentioned that the displcement is on the right side of the line number where i have identified the offset. The below is as follows-
BLW=00000+010,0000010 3C. Now is the displacement 00000010(8 -digits). Should i be looking for this value in the Ceedump ?
My question might look silly. But thank you for all the time. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
My question might look silly. But thank you for all the time. |
Not silly at all
Maybe this tiny example will help.
Code: |
WORKING-STORAGE SECTION.
77 EYE-CATCH1 PIC X(10) VALUE 'WS BEGINS '.
01 SOME-STUFF.
05 A-COMP3-FLD PIC S9(9) COMP-3 VALUE 4.
05 AN-X-FLD REDEFINES A-COMP3-FLD PIC X(5).
01 FILLER PIC X(2000) VALUE ALL 'DFGH'.
01 A-COUNTER PIC S9(9) COMP-3 VALUE 9.
*
PROCEDURE DIVISION.
0000-MAINLINE.
COMPUTE A-COUNTER = A-COUNTER + A-COMP3-FLD.
MOVE 'KKKKK' TO AN-X-FLD.
COMPUTE A-COUNTER = A-COUNTER + A-COMP3-FLD.
GOBACK. |
The second COMPUTE will abend with an 0c7.
The WorkingStorage compiles as:
Code: |
19 77 EYE-CATCH1. . . . . . . . . . . . . . . . . . BLW=00000 000
20 1 SOME-STUFF. . . . . . . . . . . . . . . . . . BLW=00000 010
21 2 A-COMP3-FLD . . . . . . . . . . . . . . . . BLW=00000 010
22 2 AN-X-FLD. . . . . . . . . . . . . . . . . . BLW=00000 010
23 1 FILLER. . . . . . . . . . . . . . . . . . . . BLW=00000 018
24 1 A-COUNTER . . . . . . . . . . . . . . . . . . BLW=00000 7E8
|
From the CEE dump:
Code: |
WORKING-STORAGE for DSCHCBX3
BLW-0: 0004C0B8
+000000 0004C0B8 E6E240C2 C5C7C9D5 E2400000 00000000 D2D2D2D2 D2
+000020 0004C0D8 C4C6C7C8 C4C6C7C8 C4C6C7C8 C4C6C7C8 C4C6C7C8 C4
+000040 0004C0F8 - +0007DF 0004C897 same as above
+0007E0 0004C898 C4C6C7C8 C4C6C7C8 00000001 3C000000 00000000 00
|
Notice that a-counter (displ x7E8) contains +13 (the result of the first compute). Notice that a-comp3-fld (displ x010) contains an invalid packed decimal value (the result of the move 'kkkkk'). When the second compute is executed, the 0c7 is raised.
When you find the displacement(s) in the compile, you can follow them to the fields in the dump. |
|
Back to top |
|
|
rohit510
New User
Joined: 08 Jan 2008 Posts: 18 Location: delhi
|
|
|
|
Hi Dick,
Thank you for all the efforts....Iam more or less at the goal post.
I hope to implement these in future abends.
Thanks once again for all who have poured in their suggestions..... |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
You're welcome
Someone will be here if there questions on some future abend.
d |
|
Back to top |
|
|
|