A work in progress...
This page contains information which will attempt to assist anyone who is responsible for the debugging of CICS applications. The examples provided are for CICS transaction dumps formatted with the IBM supplied CICS transaction dump formatting utility program. Initially, COBOL examples will be provided. Plans are to add Assembler and possibly C/C++ examples in the future. Dump analysis is sometimes called "dump shooting" or "shooting a dump". There is a bit of both art and science involved in dump analysis, and the notes provided here are possibly only one of many different ways to diagnose the example problems.
It is assumed that the reader is a somewhat experienced CICS application or system programmer and familiar with basic CICS terminology. Another assumption is that the reader is familiar with CICS Messages and Codes and the IBM supplied "CMAC" transaction which provides an online version of the CICS Messages and Codes manual. Obviously, it is assumed that you have access to the source code and/or an assembly/compilation listing(s) of the problem program(s). You do keep a copy of all of your production CICS program source and copy/macro code and/or listings, don't you?
NERPCDV1 --- CICS TRANSACTION DUMP --- CODE=AICA TRAN=NESW ID=1/0028 DATE=00/08/14 TIME=13:40:17 PAGE 1 SYMPTOMS= AB/UAICA PIDS/565501800 FLDS/DFHABAB RIDS/DCNESW00 CICS/ESA LEVEL = 0410 PSW & REGISTERS AT TIME OF INTERRUPT PSW 079D1000 90939FE8 00020001 00000000 REGS 0-7 0F305364 0F304710 0F306208 002010D0 0F3061B8 00000006 00000000 00000006 REGS 8-15 002018D8 0F3051C8 109392DC 109399C0 109392BC 0F304500 90939E0C 00000000From the above info. from page 1 of this abend, we can determine the following (and more):
first second third fourth
fullword: fullword: fullword: fullword:
PSW 079D1000 90939FE8 00020001 00000000
|
|
|
|
high order
32-bit is on,
so assume
31-bit mode
----- MODULE INDEX -----
LOAD PT. NAME ENTRY PT LENGTH
109391A0 DCNESW00 109391C0 00003B70
The PSW at the top of the transaction dump listing contains
90939FE8 and the entry point from the module index is 109391C0.
Because IBM uses 31-bit addressing (instead of 32-bit addressing),
we ignore the high order bit of the PSW and subtract the
entry point address x'109391C0' from the second full word of
the PSW x'10939FE8' resulting in x'E28'.
[snip] 000074 WORKING-STORAGE SECTION. [snip] 000093 05 WS-CPU-LOOP PIC X(01) VALUE 'Y'. BLW=0000+059,0000001 1C 000094 88 FSU-BEATS-UF VALUE 'N'. [snip] 000319 3 PERFORM 4000-CPU-LOOP 502 000320 3 UNTIL FSU-BEATS-UF. 94 [snip] 000502 4000-CPU-LOOP. 000503 000504 MOVE 'Y' TO WS-CPU-LOOP. 93 000505 [snip] 000319 PERFORM 000E24 47F0 B630 BC 15,1584(0,11) GN=181(000E30) 000E28 GN=77 EQU *From the above COBOL listing(s), we can determine:
Back to the Top of this page.
Back to the Top of this page.
Back to the Top of this page.
find '0F0D0A40' 124
find '104D6260' 124
...is not found, and leaves us with the ISPF message
"*Bottom of data reached*", so let's try another possibility:
find '104D6250' 124
...which we find, and contains the following:
Back to the Top of this page.
http://cics.nerdc.ufl.edu/intecode.html
CNTL=ON,PROG=DCNESW00,MXR=2
Back to the Top of this page.
Created:
June 2000, by Steve Ware.
Last updated:
July 26, 2005, by Steve Ware.
An ASRA abend 0C7 (data exception) COBOL example:
NERACTSI --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=NESW ID=1/0005 DATE=00/08/08 TIME=16:23:40 PAGE 1
SYMPTOMS= AB/UASRA PIDS/565501800 FLDS/DFHABAB RIDS/DCNESW00
CICS/ESA LEVEL = 0410
PSW & REGISTERS AT TIME OF INTERRUPT
PSW 079D1000 8EDF0032 00060007 057E5000
REGS 0-7 0E505354 0E504700 0E5061F8 002010D0 0E5061A8 00000006 00000000 00000006
REGS 8-15 002018D8 0E5051B8 0EDEF2CC 0EDEF9B0 0EDEF2AC 0E5044F0 8EDEFDFC 00000000
From the above info. from page 1 of this abend, we can determine the following (and more):
(CICSTSTI is the UFCNS jobname, btw.)
first second third fourth
fullword: fullword: fullword: fullword:
PSW 079D1000 8EDF0032 00060007 057E5000
| | |
| | type
| length
|
high order
32-bit is on,
so assume
31-bit mode
TASK CONTROL AREA (SYSTEM AREA)
00000000 00000000 00000000 00000000 00000000 0000285C 0DFB7188 00000045 00000000 *...................*...h........* 00057180
00000020 00000000 00000000 00000000 0013F100 00000000 00000000 00000000 00000000 *..............1.................* 000571A0
00000040 0E50F2A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *..2.............................* 000571C0
00000060 00000000 00000000 00000000 00000000 00000000 00000000 80000000 C1E2D9C1 *............................ASRA* 000571E0
NERACTSI --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=NESW ID=1/0005 DATE=00/08/08 TIME=16:23:40 PAGE 3
00000080 00000000 000574E4 00000000 00000000 00057388 00205BB0 00201128 002013E0 *.......U...........h..$.........* 00057200
000000A0 00000000 80045080 00000000 00000000 D5C5E2E6 0E6A7618 00000000 00000000 *................NESW............* 00057220
000000C0 00000000 D5C5E2E6 00000040 00000000 00000000 C1E2D9C1 00000000 0F2564C8 *....NESW... ........ASRA.......H* 00057240
000000E0 00000000 0007F030 00000000 00000000 B476C40F C6051A01 00000000 00000000 *......0...........D.F...........* 00057260
00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057280
00000120 00000000 00000000 00000000 00000000 80045F60 00000000 00000000 0005756C *...................-............* 000572A0
00000140 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 000572C0
00000160 00000000 00000000 180FC6D3 C1D5C5D9 4BE3C5C4 D4C2F0F0 F076C40F C605E400 *..........FLANER.TEDMB000.D.F.U.* 000572E0
00000180 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057300
000001A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057320
000001C0 00000000 00000000 01900047 00201008 00000000 00000000 00000000 00105538 *................................* 00057340
000001E0 00000000 00000000 C4C3D5C5 E2E6F0F0 F0C3F761 C1D2C5C1 00000EA2 00020781 *........DCNESW000C7/AKEA...s...a* 00057360
00000200 00000000 00000000 | *........ * 00057380
|
offset
From the above info., we can determine the following (and more):
DFSMS/MVS V1 R5.0 BINDER 16:23:16 TUESDAY AUGUST 8, 2000
BATCH EMULATOR JOB(DCNESW00) STEP(COBOL3 ) PGM= IEWL PROCEDURE(LKED )
IEW2278I B352 INVOCATION PARAMETERS - LIST,MAP,XREF,LET,RENT,AMODE=31,RMODE=ANY
IEW2322I 1220 1 INCLUDE SYSLIB(DFHECI)
*** M O D U L E M A P ***
---------------
CLASS B_TEXT LENGTH = 3B70 ATTRIBUTES = CAT, LOAD, RMODE=ANY ALIGN = DBLWORD
---------------
SECTION CLASS ------- SOURCE --------
OFFSET OFFSET NAME TYPE LENGTH DDNAME SEQ MEMBER
0 DFHECI CSECT 20 SYSLIB 01 DFHECI
8 8 DFHEI1 LABEL
8 8 DLZEI01 LABEL
8 8 DLZEI02 LABEL
8 8 DLZEI03 LABEL
8 8 DLZEI04 LABEL
offset ---> 20 DCNESW00 CSECT 2F38 SYSLIN 02 **NULL**
2F58 CEESG005 * CSECT 18 SYSLIB 02 CEESG005
2F70 CEEBETBL * CSECT 24 SYSLIB 02 CEEBETBL
2F98 CEESTART * CSECT 7C SYSLIB 02 CEESTART
3018 IGZCBSO * CSECT 568 SYSLIB 02 IGZCBSO
3580 CEEARLU * CSECT B8 SYSLIB 02 CEEARLU
[snip]
Another way to determine the failing instruction offset (without using
the LINKEDIT/BINDER listing) is as follows:
Next, we need to look at the COBOL compilation listing and the COBOL
LIST option "assembler" option listing for x'000E82', where we see an
UNPK instruction when the COBOL ADD verb was compiled at statement
000513 (suspiciously in a paragraph labeled "4700-DATA-EXCEPTION"):
----- MODULE INDEX -----
LOAD PT. NAME ENTRY PT LENGTH
0EDEF190 DCNESW00 0EDEF1B0 00003B70
The PSW at the top of the transaction dump listing contains
8EDF0032 and the entry point from the module index is 0EDEF1B0.
Because IBM uses 31-bit addressing (instead of 32-bit addressing),
we ignore the high order bit of the PSW and subtract the
entry point address x'0EDEF1B0' from the second full word of
the PSW x'0EDF0032' resulting in x'E82'. Recall that this is
the same offset that we obtained above.
[snip]
000074 WORKING-STORAGE SECTION.
[snip]
000115 10 WS-RECEIVE-COUNT PIC X(02) VALUE SPACES. BLW=0000+3A7,0000347 2C
IMP
000134 10 WS-RECEIVE-COUNT-PIC9 REDEFINES WS-RECEIVE-COUNT BLW=0000+3A7,0000347 2C
115
000135 PIC 9(02).
000147 05 WS-READ-COUNT PIC 9(4) VALUE ZERO. BLW=0000+408,0000000 4C
IMP
[snip]
000265 PROCEDURE DIVISION using dfheiblk dfhcommarea.
[snip]
000510 4700-DATA-EXCEPTION.
000511
000512 MOVE "++" TO WS-RECEIVE-COUNT. 115
000513 ADD WS-RECEIVE-COUNT-PIC9 TO WS-READ-COUNT. 134 147
[snip]
000512 MOVE
000E6C D201 23A7 A614 MVC 935(2,2),1556(10) (BLW=0)+935 PGMLIT AT +1428
000513 ADD
PP 5688-197 IBM COBOL for MVS & VM 1.2.2 DCNESW00 Date 08/08/2000 Time 16:23:11 Page 45
000E72 F223 D210 2408 PACK 528(3,13),1032(4,2) TS2=24 WS-READ-COUNT
000E78 960F D212 OI 530(13),X'0F' TS2=26
--> 000E7C FA21 D210 A612 AP 528(3,13),1554(2,10) TS2=24 PGMLIT AT +1426
000E82 F332 2408 D210 UNPK 1032(4,2),528(3,13) WS-READ-COUNT TS2=24
000E88 96F0 240B OI 1035(2),X'F0' WS-READ-COUNT+3
000E8C 47F0 BDB2 BC 15,3506(0,11) GN=18(0015B2)
000E90 GN=17 EQU *
From the above COBOL listing(s), we can determine:
R10+612 (x'0EDEF8DE'):
00000700 D6E4E340 40C9C7E9 E2D9E3C3 C4D5C5E6 E2F0F140 40C4C3D5 C5C1E2E4 C2C4C3D5 *OUT IGZSRTCDNEWS01 DCNEASUBDCN* 0EDEF890
00000720 C5E2E6E2 C4C3D5C5 E2E6D400 400000F0 F0F0F1F0 F0F0F0C2 C1D9C600 019000FF *ESWSDCNESWM. ..00010000BARF.....* 0EDEF8B0
00000740 FFFFFF00 000C0050 05860043 7FFF0EEF 4E4E01F4 009F004F 40000000 0025C000 *.........f......++.4.... .......* 0EDEF8D0
|
here
R13+210 (x'0E504700'):
00000F20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 0E504620
00000F40 LINES TO 00000FE0 SAME AS ABOVE 0E504640
00001000 00000F00 0000006C 8E50623C 27010000 00000000 0000000C 00000000 00000000 *................................* 0E504700
|
here
An ASRA abend 0C4 (protection exception) example:
NERPCTS4 --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=NESW ID=1/0004 DATE=00/08/11 TIME=15:51:50 PAGE 1
SYMPTOMS= AB/UASRA PIDS/565501800 FLDS/DFHABAB RIDS/DCNESW00
CICS/ESA LEVEL = 0410
PSW & REGISTERS AT TIME OF INTERRUPT
PSW 079D2000 8FDDD3F4 00020004 00000000
REGS 0-7 0F305354 0F304700 00000000 00019000 00000000 0F3061F8 0F3067A8 40000586
REGS 8-15 002018D8 0F3051B8 0FDDB94C 0FDDCFC0 0FDDB92C 0F3044F0 8FDDC47C 00000000
From the above info. from page 1 of this abend, we can determine the following (and more):
(CICSTST4 is the UFCNS jobname, btw.)
first second third fourth
fullword: fullword: fullword: fullword:
PSW 079D2000 8FDDD3F4 00020004 00000000
| | |
| | type
| length
|
high order
32-bit is on,
so assume
31-bit mode
TASK CONTROL AREA
00000000 00057780 00000001 0F4B8420 00046980 0F0D81B0 00000000 20000000 80000060 *..........d.......a............-* 00057680
00000020 00000000 0001209C 00000000 00000000 00000000 8F0529E8 1026D5B0 00000000 *.......................Y..N.....* 000576A0
NERPCTS4 --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=NESW ID=1/0004 DATE=00/08/11 TIME=15:51:50 PAGE 2
00000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 000576C0
00000060 00000014 C3C5E2C5 0F0430C4 0F0D6FD0 00000000 00000000 00000000 00000000 *....CESE...D..?.................* 000576E0
00000080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057700
000000A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057720
000000C0 00000000 00000000 00000000 C5F60200 00000000 00000000 00000000 80046570 *............E6..................* 00057740
000000E0 00000000 00000000 00000000 009B3000 00000000 00000000 00000000 0F303708 *................................* 00057760
00000100 00000000 00000000 00000000 00000000 0001209C 0EF35188 00000045 00000000 *.....................3.h........* 00057780
00000120 00000000 00000000 00000000 00078370 00000000 00000000 00000000 00000000 *..............c.................* 000577A0
00000140 0F3102A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 000577C0
00000160 00000000 00000000 00000000 00000000 00000000 00000000 80000000 C1E2D9C1 *............................ASRA* 000577E0
00000180 00000000 00057AE4 00000000 00000000 00057988 00205BB0 00201128 002013E0 *......:U...........h..$.........* 00057800
000001A0 00000000 80046080 00000000 00000000 D5C5E2E6 0F4B8420 00000000 00000000 *......-.........NESW..d.........* 00057820
000001C0 00000000 D5C5E2E6 00000040 00000000 00000000 C1E2D9C1 00000000 0F00E4C8 *....NESW... ........ASRA......UH* 00057840
000001E0 00000000 001BF030 00000000 00000000 B47A828B C6692604 00000000 00000000 *......0..........:b.F...........* 00057860
00000200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057880
00000220 00000000 00000000 00000000 00000000 80046ED8 00000000 00000000 00057B6C *..................>Q............* 000578A0
00000240 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 000578C0
00000260 00000000 00000000 180FC6D3 C1D5C5D9 4BE3C5C4 D4C2F0F0 F17A828B C66A4F00 *..........FLANER.TEDMB001:b.F...* 000578E0
00000280 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057900
000002A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00057920
000002C0 00000000 00000000 018E00A5 00201008 00000000 00000000 00000000 001046A8 *...........v...................y* 00057940
000002E0 00000000 00000000 C4C3D5C5 E2E6F0F0 F0C3F461 C1D2C5C1 00001BE4 00020781 *........DCNESW000C4/AKEA...U...a* 00057960
00000300 00000000 00000000 | *........ * 00057980
offset
From the above info., we can determine the following (and more):
DFSMS/MVS V1 R5.0 BINDER 16:23:16 TUESDAY AUGUST 8, 2000
BATCH EMULATOR JOB(DCNESW00) STEP(COBOL3 ) PGM= IEWL PROCEDURE(LKED )
IEW2278I B352 INVOCATION PARAMETERS - LIST,MAP,XREF,LET,RENT,AMODE=31,RMODE=ANY
IEW2322I 1220 1 INCLUDE SYSLIB(DFHECI)
*** M O D U L E M A P ***
---------------
CLASS B_TEXT LENGTH = 3B70 ATTRIBUTES = CAT, LOAD, RMODE=ANY ALIGN = DBLWORD
---------------
SECTION CLASS ------- SOURCE --------
OFFSET OFFSET NAME TYPE LENGTH DDNAME SEQ MEMBER
0 DFHECI CSECT 20 SYSLIB 01 DFHECI
8 8 DFHEI1 LABEL
8 8 DLZEI01 LABEL
8 8 DLZEI02 LABEL
8 8 DLZEI03 LABEL
8 8 DLZEI04 LABEL
offset ---> 20 DCNESW00 CSECT 2F38 SYSLIN 02 **NULL**
2F58 CEESG005 * CSECT 18 SYSLIB 02 CEESG005
2F70 CEEBETBL * CSECT 24 SYSLIB 02 CEEBETBL
2F98 CEESTART * CSECT 7C SYSLIB 02 CEESTART
3018 IGZCBSO * CSECT 568 SYSLIB 02 IGZCBSO
3580 CEEARLU * CSECT B8 SYSLIB 02 CEEARLU
[snip]
Another way to determine the failing instruction offset (without using
the LINKEDIT/BINDER listing) is as follows:
Next, we need to look at the COBOL compilation listing and the COBOL
LIST option "assembler" option listing for x'001BC4', where we see a
BC instruction when the COBOL MOVE verb was compiled at statement
000508 (suspiciously in a paragraph labeled "4400-PROTECTION-EXCEPTION"):
----- MODULE INDEX -----
LOAD PT. NAME ENTRY PT LENGTH
0FDDB810 DCNESW00 0FDDB830 00003B70
The PSW at the top of the transaction dump listing contains
8FDDD3F4 and the entry point from the module index is 0FDDB830.
Because IBM uses 31-bit addressing (instead of 32-bit addressing),
we ignore the high order bit of the PSW and subtract the
entry point address x'0FDDB830 ' from the second full word of
the PSW x'0FDDD3F4' resulting in x'1BC4'. Recall that this is
the same offset that we obtained above.
[snip]
000074 WORKING-STORAGE SECTION.
[snip]
000165 01 WS-MESSAGES-AND-TEXT. BLW=0000+5B0 0CL1414
000166 05 WS-DISABLED-TEXT PIC X(79) BLW=0000+5B0,0000000 79C
000167 VALUE 'NESW: DATASET DISABLED ERROR.'.
000168 05 WS-DSIDERR-TEXT PIC X(79) BLW=0000+5FF,000004F 79C
000169 VALUE 'NESW: DATASET ID ERROR.'.
000170 05 WS-DUPKEY-TEXT PIC X(79) BLW=0000+64E,000009E 79C
000171 VALUE 'NESW: VSAM DUPKEY ERROR.'.
[snip]
000226 LINKAGE SECTION.
000227 01 dfheiblk. BLL=0001+000 0CL85
000228 02 eibtime comp-3 pic s9(7). BLL=0001+000,0000000 4P
000229 02 eibdate comp-3 pic s9(7). BLL=0001+004,0000004 4P
000230 02 eibtrnid pic x(4). BLL=0001+008,0000008 4C
000231 02 eibtaskn comp-3 pic s9(7). BLL=0001+00C,000000C 4P
000232 02 eibtrmid pic x(4). BLL=0001+010,0000010 4C
000233 02 dfheigdi comp pic s9(4). BLL=0001+014,0000014 2C
000234 02 eibcposn comp pic s9(4). BLL=0001+016,0000016 2C
000235 02 eibcalen comp pic s9(4). BLL=0001+018,0000018 2C
000236 02 eibaid pic x(1). BLL=0001+01A,000001A 1C
000237 02 eibfn pic x(2). BLL=0001+01B,000001B 2C
000238 02 eibrcode pic x(6). BLL=0001+01D,000001D 6C
000239 02 eibds pic x(8). BLL=0001+023,0000023 8C
000240 02 eibreqid pic x(8). BLL=0001+02B,000002B 8C
000241 02 eibrsrce pic x(8). BLL=0001+033,0000033 8C
000242 02 eibsync pic x(1). BLL=0001+03B,000003B 1C
000243 02 eibfree pic x(1). BLL=0001+03C,000003C 1C
000244 02 eibrecv pic x(1). BLL=0001+03D,000003D 1C
000245 02 eibfil01 pic x(1). BLL=0001+03E,000003E 1C
000246 02 eibatt pic x(1). BLL=0001+03F,000003F 1C
000247 02 eibeoc pic x(1). BLL=0001+040,0000040 1C
000248 02 eibfmh pic x(1). BLL=0001+041,0000041 1C
000249 02 eibcompl pic x(1). BLL=0001+042,0000042 1C
000250 02 eibsig pic x(1). BLL=0001+043,0000043 1C
000251 02 eibconf pic x(1). BLL=0001+044,0000044 1C
000252 02 eiberr pic x(1). BLL=0001+045,0000045 1C
000253 02 eiberrcd pic x(4). BLL=0001+046,0000046 4C
000254 02 eibsynrb pic x(1). BLL=0001+04A,000004A 1C
000255 02 eibnodat pic x(1). BLL=0001+04B,000004B 1C
000256 02 eibresp comp pic s9(8). BLL=0001+04C,000004C 4C
000257 02 eibresp2 comp pic s9(8). BLL=0001+050,0000050 4C
000258 02 eibrldbk pic x(1). BLL=0001+054,0000054 1C
000259 01 dfhcommarea picture x(1). BLL=0002+000 1C
000260 01 LS-GETMAIN-AREA. BLL=0003+000 0CL102400
000261 05 FILLER PIC X(01) BLL=0003+000,0000000 1C
000262 OCCURS 1 TO 102400 TIMES
000263 DEPENDING ON WS-GETMAIN-LENGTH. 85
[snip]
000265 PROCEDURE DIVISION using dfheiblk dfhcommarea.
[snip]
000506 4400-PROTECTION-EXCEPTION.
000507
000508 MOVE WS-MESSAGES-AND-TEXT TO LS-GETMAIN-AREA. 165 260
000509
[snip]
000506 *4400-PROTECTION-EXCEPTION
000508 MOVE
001B80 5820 D098 L 2,152(0,13) ODOSAVE=1
001B84 4E20 D208 CVD 2,520(0,13) TS2=16
001B88 D505 A58D D20A CLC 1421(6,10),522(13) PGMLIT AT +1293 TS2=18
001B8E 4780 B41A BC 8,1050(0,11) GN=6(001BAA)
001B92 D203 D094 A5B1 MVC 148(4,13),1457(10) VLC=1 PGMLIT AT +1329
001B98 D203 D098 A5FF MVC 152(4,13),1535(10) ODOSAVE=1 PGMLIT AT +1407
001B9E 5850 A084 L 5,132(0,10) PGMLIT AT +4
001BA2 5A50 D094 A 5,148(0,13) VLC=1
001BA6 5050 D094 ST 5,148(0,13) VLC=1
001BAA GN=6 EQU *
001BAA 5840 9138 L 4,312(0,9) BLL=3
001BAE 4120 4000 LA 2,0(0,4) LS-GETMAIN-AREA
001BB2 5830 D094 L 3,148(0,13) VLC=1
001BB6 5850 9128 L 5,296(0,9) BLW=0
001BBA 4160 55B0 LA 6,1456(0,5) WS-MESSAGES-AND-TEXT
PP 5688-197 IBM COBOL for MVS & VM 1.2.2 DCNESW00 Date 08/08/2000 Time 16:23:11 Page 62
001BBE 5870 A08C L 7,140(0,10) PGMLIT AT +12
--> 001BC2 0E26 MVCL 2,6
001BC4 47E0 B446 BC 14,1094(0,11) GN=155(001BD6)
001BC8 5820 905C L 2,92(0,9) TGTFIXD+92
001BCC 58F0 20B0 L 15,176(0,2) V(IGZCVMO )
001BD0 4110 A62E LA 1,1582(0,10) PGMLIT AT +1454
001BD4 05EF BALR 14,15
001BD6 GN=155 EQU *
001BD6 5820 D0C0 L 2,192(0,13) PVN=10
001BDA 05F2 BALR 15,2
From the above COBOL listing(s), we can determine:
PSW & REGISTERS AT TIME OF INTERRUPT
PSW 079D2000 8EDF0D6C 00020004 057E5000
REGS 0-7 0E505354 0E504700 00000000 00019000 00000000 0E5061F8 0E5067A8 40000586
REGS 8-15 002018D8 0E5051B8 0EDEF2CC 0EDF093A 0EDEF2AC 0E5044F0 8EDEFDFC 00000000
An ASRA abend 0C1 (operation exception) example:
NERPCPR8 --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=RA2H ID=1/0008 DATE=00/08/07 TIME=15:40:22 PAGE 1
SYMPTOMS= AB/UASRA PIDS/565501800 FLDS/DFHABAB RIDS/RARAS02H
CICS/ESA LEVEL = 0410
PSW & REGISTERS AT TIME OF INTERRUPT
PSW 079D0000 8F0D0A42 00020001 00000000
REGS 0-7 00201816 002014C0 80046570 904D5698 0F0D0A40 002027D8 06582FFE 904D7698
REGS 8-15 904D6698 00046980 00290980 002010D0 009AB000 00201458 904D578A 904D626A
EXECUTION KEY 9
The transaction was in Basespace mode
REGISTERS AT LAST EXEC COMMAND
REGS 0-7 00201816 002014C0 80046570 904D5698 0F0D0A40 002027D8 06582FFE 904D7698
REGS 8-15 904D6698 00046980 00290980 002010D0 009AB000 00201458 904D578A 00000000
From the above info. from page 1 of this abend, we can determine the following (and more):
(CICSPRD8 is the UFCNS jobname, btw.)
first second third fourth
fullword: fullword: fullword: fullword:
PSW 079D0000 8F0D0A42 00020001 00000000
| | |
| | type
| length
|
high order
32-bit is on,
so assume
31-bit mode
TASK CONTROL AREA
00000000 00290780 00100001 10EF6810 00046980 0F0D21B0 105BD8B4 00000000 80000060 *.....................$Q........-* 00290680
00000020 00000000 0098141C 00000000 00000000 00000000 8F0529E8 10E0F340 00000580 *.....q.................Y..3 ....* 002906A0
NERPCPR8 --- CICS TRANSACTION DUMP --- CODE=ASRA TRAN=RA2H ID=1/0008 DATE=00/08/07 TIME=15:40:22 PAGE 2
00000040 009AB000 0020105C 8FD7CD6C 00D262E8 80046570 8FD7CD58 0F0D1690 06581FFF *.......*.P...K.Y.....P..........* 002906C0
00000060 01000500 00000000 C4C6F000 C1E2D9C1 00000000 00000000 D5C5D9C3 C900E240 *........DF0.ASRA........NERCI.S * 002906E0
00000080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00290700
000000A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00290720
000000C0 00000000 00000000 00000000 C5F30200 00201458 00000000 00000000 80046570 *............E3..................* 00290740
000000E0 00000000 00000000 00000000 009A7000 00000000 00000000 00000000 00000000 *................................* 00290760
00000100 00000000 00000000 00000000 00000000 0098141C 0EF34188 00000045 00000000 *.................q...3.h........* 00290780
00000120 00000000 00000000 00000000 0013F2A0 00000000 00000000 00000000 00000000 *..............2.................* 002907A0
00000140 00201458 00201448 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 002907C0
00000160 00000000 00000000 00000000 00000000 00000000 00000000 80000000 C1E2D9C1 *............................ASRA* 002907E0
00000180 00000000 00290AE4 00000000 00000000 00290988 00000000 00201128 002013E0 *.......U...........h............* 00290800
000001A0 00000000 80046080 00000000 00000000 D9C1F2C8 10EF6810 00000000 00000000 *......-.........RA2H............* 00290820
000001C0 00000000 D9C1F2C8 00000040 00000080 00000000 C1E2D9C1 00000000 10E9B4C8 *....RA2H... ........ASRA.....Z.H* 00290840
000001E0 00000000 0010B578 00000000 00000000 B4757888 A66ADF04 00000000 00000000 *...................hw...........* 00290860
00000200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00290880
00000220 00000000 00000000 00000000 00000000 80046ED8 00000000 00000000 00290B6C *..................>Q............* 002908A0
00000240 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 002908C0
00000260 00000000 00000000 180FC6D3 C1D5C5D9 4BE3C5C4 D4C2F0D1 C6757888 A6249D00 *..........FLANER.TEDMB0JF..hw...* 002908E0
00000280 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00290900
000002A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 00290920
000002C0 00000000 00000000 01943CBD 00201008 00000000 00000000 00000000 0010D0E8 *.........m.....................Y* 00290940
000002E0 00000000 00000000 D9C1D9C1 E2F0F2C8 F0C3F161 C1D2C5C1 FFFFFFFF 00020781 *........RARAS02H0C1/AKEA.......a* 00290960
00000300 00000000 00000000 | *........ * 00290980
|
offset
From the above info., we can determine the following (and more):
KERN STACK ENTRY OWNED BY DFHAPLI1
00000000 00000510 0F0D06A0 40404040 8F04F3C2 8ED00080 0000040C 00290B6C 80046570 *........ ..3B................* 0F0D0A40
|
|
contents
of
address
x'0F0D0A40'
REGS 8-15 904D6698 00046980 00290980 002010D0 009AB000 00201458 904D578A 904D626A
|
|
R15
00000BE0 D170D205 D30D202C D203D313 2036D214 50A12009 92E8D2EC 07F492D5 D2EC07F4 *J.K.L...K.L...K.....kYK..4kNK..4* 104D6250
|
|
contents
of
address
x'104D626A'
REGS 0-7 00201816 002014C0 80046570 904D5698 0F0D0A40 002027D8 06582FFE 904D7698
|
|
R4
Let's take a look at the assembly listing for RARAS02H to confirm
what we've discovered about this S0C1. We'll also look at some
more info. from the dump that should be helpful in diagnosing similar
CICS ASRA S0C1 problems.
1896 * EXEC CICS HANDLE CONDITION ERROR(NOACAD) 00661002
1897 DFHECALL =X'02048000080100000000000000000000000000000000',(LAB*
,NOACAD)
1898+***********************************************************************
00003C 1899+ DS 0H 01-DFHEC
00003C 4110 D068 00068 1900+ LA 1,DFHEIPL 01-DFHEC
000040 41E0 3D64 00D64 1901+ LA 14,=X'02048000080100000000000000000000000000000000' 01-DFHEC
000044 41F0 3D04 00D04 1902+ LA 15,=A(NOACAD) @P6A 01-DFHEC
000048 90EF 1000 00000 1903+ STM 14,15,0(1) 01-DFHEC
00004C 9680 1004 00004 1904+ OI 4(1),X'80' LAST ARGUMENT 01-DFHEC
000050 58F0 3D08 00D08 1905+ L 15,=V(DFHEI1) 01-DFHEC
000054 05EF 1906+ BALR 14,15 INVOKE EXEC INTERFACE 01-DFHEC
1907+***********************************************************************
[snip]
1963 * EXEC CICS RETRIEVE SET(R5) LENGTH(RECLEN) 00680002
1964 DFHECALL =X'100AC0000801008200',(PTR4__RF,R5),(FB_2__RF,RECLEN*
)
1965+***********************************************************************
0000D4 1966+ DS 0H 01-DFHEC
0000D4 4110 D068 00068 1967+ LA 1,DFHEIPL 01-DFHEC
0000D8 41E0 3E0E 00E0E 1968+ LA 14,=X'100AC0000801008200' 01-DFHEC
0000DC 41F0 D170 00170 1969+ LA 15,DFHEITP1 01-DFHEC
0000E0 4100 D3BE 003BE 1970+ LA 0,RECLEN 01-DFHEC
0000E4 90E0 1000 00000 1971+ STM 14,0,0(1) 01-DFHEC
0000E8 9680 1008 00008 1972+ OI 8(1),X'80' LAST ARGUMENT 01-DFHEC
0000EC 58F0 3D08 00D08 1973+ L 15,=V(DFHEI1) 01-DFHEC
0000F0 05EF 1974+ BALR 14,15 INVOKE EXEC INTERFACE 01-DFHEC
0000F2 5850 D170 00170 1975+ L R5,DFHEITP1 01-DFHEC
1976+***********************************************************************
[snip]
000BD2 92D5 D2EC 002EC 2942 NOACAD MVI RECOK,C'N' 02892002
000BD6 07F4 2943 BR R4 02892102
[snip]
98141 1 PG 0700 PGHM ENTRY INQ_CONDITION 1D =000314=
98141 1 PG 0701 PGHM EXIT INQ_CONDITION/OK AEI2,904D626A,00201458,ASSEMBLER,90,HANDLED,1 =000315=
98141 1 AP 00E1 EIP EXIT RETRIEVE ENDDATA 01F4,00000000 ....,001D100A .... =000316=
98141 1 AP 1942 APLI *EXC* Program-Check START_PROGRAM,RARAS02H,CEDF,FULLAPI,EXEC,NO,102D5648,002027D8 , 000005DC =000317=
98141 1 AP 0790 SRP *EXC* PROGRAM_CHECK =000318=
An INTE (CA-InterTest) abend example:
NER2CICT --- CICS TRANSACTION DUMP --- CODE=INTE TRAN=NESW ID=1/0014 DATE=00/08/15 TIME=12:49:35 PAGE 1
SYMPTOMS= AB/UINTE PIDS/565501800 FLDS/DFHABAB RIDS/DCNESW00
CICS/ESA LEVEL = 0410
REGISTERS AT LAST EXEC COMMAND
REGS 0-7 00000007 0F3000D8 00000FF0 00000001 00207828 0F300008 0013E48C 00000000
REGS 8-15 002044D0 0F3171A8 8002EBC0 0002ECBA 00205BB0 0F300058 8002EC2E 00000000
From the above info. from page 1 of this abend, we can determine the following (and more):
(CICSTEST is the UFCNS jobname, btw.)
This abend code is normally associated with CA-InterTest automatic
breakpoints.
TRANSACTION STORAGE-USER24 ADDRESS 00201440 TO 00201B8F LENGTH 00000750
00000000 C2F0F0F0 F2F3F1F5 8CFE0734 C9D5F2F5 C9D5E3C5 D9E3C5E2 E302315C D5C5E2E6 *B0002315....IN25INTERTEST..*NESW* 00201440
00000020 C4C3D5C5 E2E6F0F0 5BC2F0C4 10A3AEB0 10A3EA20 40F2F340 C9D5E3C5 40C1C2C5 *DCNESW00$B0D.t...t.. 23 INTE ABE* 00201460
00000040 D5C440C1 E34EF0F0 C3F3C54B 07FF0000 00000000 10A3AECC 00000000 00000000 *ND AT+00C3E..........t..........* 00201480
| |
| |
offset "INTERTEST"
string
From the above info., we can determine the following (and more):
Here's some of the DCNESW00 COBOL listing we now need to review:
[snip]
000297 *EXEC CICS RECEIVE
000298 * INTO(WS-RECEIVE-AREA)
000299 * LENGTH(WS-RECEIVE-LENGTH)
000300 * RESP(WS-RESP)
000301 *END-EXEC.
000302 Call 'DFHEI1' using by content x'0402c00027000000140000400000 EXT
000303 - '00f0f0f2f4f2404040' by reference WS-RECEIVE-AREA by 112
000304 reference WS-RECEIVE-LENGTH end-call 83
000305 Move eibresp to WS-RESP. 256 99
[snip]
000302 CALL
000C18 D216 D220 A432 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
000C36 9680 D218 OI 536(13),X'80' TS2=32
000C3A 4110 D210 LA 1,528(0,13) TS2=24
--> 000C3E 58F0 A000 L 15,0(0,10) V(DFHEI1 )
000C42 4100 919C LA 0,412(0,9) CLLE@=1
000C46 58C0 9080 L 12,128(0,9) TGTFIXD+128
000C4A 05EF BALR 14,15
000C4C 58C0 90E8 L 12,232(0,9) TGTFIXD+232
000C50 5840 9124 L 4,292(0,9) BL=1
000C54 40F0 4000 STH 15,0(0,4) RETURN-CODE
000305 MOVE
[snip]
From the above COBOL listing(s), we can determine:
Miscellaneous debugging hints, tips, and online manuals:
...to find page 1 of a formatted transaction dump
...there are 4 spaces between page and 1 in the find command
...to find the EIB
...to find the beginning of the trace table entries
...to find the end of the trace table entries
...to find trace table EXCeption entries, like INVREQ,
ABENDs, etc.
...to find the COMMAREA
...to find task related program information
...to find a dump of program storage
...to find the registers and PSW eye catcher
...to find the program module index for program load points,
entry points, and lengths
...to find the program in the module index in the dump -
...start this find from the bottom end of the dump
Each bit represents "powers of 2".
PSW:
80939FE8 90939FE8 A0939FE8 B0939FE8 C0939FE8 D0939FE8 E0939FE8 F0939FE8
31-bit address:
00939FE8 10939FE8 20939FE8 30939FE8 40939FE8 50939FE8 60939FE8 70939FE8
Questions, comments, or suggestions regarding this site should
be directed to
cicsgrp@cns.ufl.edu.
Back to UFCNS CICS Home Page
Back to UFCNS CICS Application Development Page
Back to the Top of this page