You are on page 1of 20

How To Do Application Support

9. Abend Aid - dealing with production abends

Introduction

The purpose of this document is to provide you with the knowledge to locate
information in an “unformatted” AbendAid dump. It assumes that you are
already familiar with AbendAid and its use via the AbendAid ISPF panels.

Also included in this document are tips and notes for handling situations
unique to Target, and/or Mervyns.

*Note: DSD information will be added to this document as we migrate to


full production GMS support on this system.

1
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Tips for handling extremely large program core dumps

To redirect the output of the AbendAid dump, add the following ABNLTERM
DD statement to your JCL as follows…

//ABNLTERM DD SYSOUT=7 (or 9)

OR

//ABNLTERM DD DSN=UCPROD01.ABENDAID.PROD.HUGE.DUMPS,
// DISP=SHR

These DD statements are added to each STEP in the JCL and are only in
effect for the step in which they occur. Please do not direct “test jobs” to
the production dump datasets.

Also note that the AbendAid dumps directed to ABNLTERM SYSOUT, are
created in the NARROW format.

Notice this particular dump is so large that it can not be browsed using the
PROGRAM section of AbendAid ISPF panel 6.

COMPUWARE/VF ----- 'TECHPRD.COMPWARE.CX.DDIO.DUMP2' ---------- Row 1 to 1 of 1


COMMAND INPUT ===> SCROLL ===> CSR
Abend-AID DATASET DIRECTORY
JOBNAME REPT NUMBER JESID CODE DATE TIME DESC SIZE(K)
T5014501 (L) 4507 J08509 U0017 03 JAN 1999 4.56.51 PROD 21886
******************************* Bottom of data ********************************

If you were to attempt to select option 6 in AbendAid, be prepared to


receive a message about insufficient virtual storage.

2
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

To get around this problem… enter ‘P’ next to the job and hit enter (this will
print the core dump).

COMPUWARE/VF ----- 'TECHPRD.COMPWARE.CX.DDIO.DUMP2' ---------- Row 1 to 1 of 1


COMMAND INPUT ===> SCROLL ===> CSR
Abend-AID DATASET DIRECTORY
JOBNAME REPT NUMBER JESID CODE DATE TIME DESC SIZE(K)
P T5014501 (L) 4507 J08509 U0017 03 JAN 1999 4.56.51 PROD 21886
******************************* Bottom of data ********************************

You will see the following panel for options…use NARROW for line size. Hit
enter to submit.

COMPUWARE/VF HARDCOPY OPTIONS


COMMAND INPUT ===>

Enter/verify options below:


Line size ===> NARROW (NARROW or WIDE)
Page size ===> 99 (20 to 99)
Sysout class ===> 7 (class,writer-name,format)
Destination ===> (nodename,userid)

Route ===> SYSOUT (SYSOUT or BATCH)


Max number of pages ===> (for Route=BATCH)
Unit ===> SYSDA (for Route=BATCH)

Allocate a MERXXX.LIST80 dataset with an LRECL of 80.

3
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Use the following commands in order to write the SDSF listing to your
dataset. This is important because on the Mervyns side there is some
automated process that purges large held listings.

SDSF OUTPUT DISPLAY SPCWH2FC JOB14738 DSID 102 LINE 121 COLUMNS 02-
81
COMMAND INPUT ===> PRINT ODSN LIST80 * SHR SCROLL ===> CSR

SDSF OUTPUT DISPLAY SPCWH2FC JOB14738 DSID 102 LINE 121 COLUMNS 02-
81
COMMAND INPUT ===> PRINT SCROLL ===> CSR

SDSF OUTPUT DISPLAY SPCWH2FC JOB14738 DSID 102 LINE 121 COLUMNS 02-
81
COMMAND INPUT ===> PRINT close SCROLL ===> CSR

4
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Abend Aid datasets

Target

• 'UCPROD01.ABENDAID.IMS.DUMPS'
• 'UCPROD01.ABENDAID.PROD.DUMPS'
• 'UCPROD01.ABENDAID.PROD.HUGE.DUMPS'
• 'UCPROD01.ABENDAID.NONPROD.DUMPS'

Mervyns

• 'TECHPRD.COMPWARE.CX.DDIO.DUMP2'
• 'TECHPRD.COMPWARE.CX.DDIO.'

*NOTE: You may want to check JCL in JMR of the abending job to see the actual
dataset used for the abend.

5
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Notes about the final compile listings at DHC.


After you have retrieved the compile listing to SDSF, be aware:
• CDM version contains only the Compile and Linkedit listings.
• PTS version contains the DB2 Precompiler, Compiler and Linkedit
listings.

The compile listings only reside on the Target site. This is one reason why it is
necessary to be able to read an ‘unformatted’ core dump.

The statement numbers in the DB2 section of AbendAid are only useful with the DB2
Precompiler listing, not the Cobol compiler listing.

Steps to ensure that the compile listing matches the compile date in the AbendAid
dump as follows:

SDSF OUTPUT DISPLAY SPCWH2FC JOB14738 DSID 102 LINE 121 COLUMNS 02-
81
COMMAND INPUT ===> SCROLL ===> CSR
PP 5668-958 IBM VS COBOL II Release 4.0 09/15/92 Date
Invocation parameters:
LIB,SIZE(MAX),OPT,DATA(24)
PROCESS(CBL) statements:
00001 CBL DATA(31) 09/29/98
Options in effect:
NOADV
APOST
NOAWO
BUFSIZE(16384)
NOCMPR2

From the compile listing… find compiled date.

6
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

From the AbendAid core dump… find the compiled date.

BROWSE MER3359.LIST80 Line 00000024 Col 001 080


Command ===> Scroll ===> CSR
*******************************************
* Next Sequential Instruction Section *
*******************************************

The next sequential instruction to be executed in program


T60138 was at displacement 000000C8.

The program was compiled on 22 AUG 1996 and is 000000E0 bytes long.

It is part of load module T50130.

The module was dynamically loaded.

The module was loaded from DSN library DHC.PROD.LOADLIB


It was link edited on 29 SEP 1998 and is 00017EC8 bytes long.

The last known I/O operation or call was issued from program
T50130 at displacement 000157DE.

The program was compiled on 29 SEP 1998 and is 000175E0 bytes

*IMPORTANT
The compiled date from the AbendAid core dump MUST match the date found in the
compiled listing, otherwise the location of the data in the AbendAid core dump will
NOT correlate to the offsets in the compiled listing.

7
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Common User Abend routines at DHC

There are two common user abend routines in use at DHC.


• T60138 or COBABEND
• T97099 or The MASTER MESSAGE ROUTER (MMR)

*Note that the MMR routine is composed of a number of dynamically loaded modules.

8
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Incorrect parameters being set before calling the user abend


routine.

Both of the user abend routines as well as COBOL II’s abend routine require that
parameters are passed to them. If these parameters are incorrect in format or
length, a System abend code may be generated.

In the following example a S0C4 abend was generated by the incorrect parameters
used in conjunction with the MMR routine…

COMPUWARE/VF -------------------------------------------------- Row 120 of 165


COMMAND INPUT ===> SCROLL ===> CSR

'UCPROD01.ABENDAID.IMS.DUMPS' REPT.31350 IMSPR003 S57491

******Calling****** ***Return*** ******Called*******


Load-Mod Program Type Value Program Load-Mod

*SYSTEM Calls DFSPCC20 DFSPCC20

DFSPCC20 DFSPCC20 Links to DFSPCC20 DFSPCC20

DFSPCC20 DFSPCC20 Links to DLITCBL T07160

T07160 DLITCBL DISP 00000310 Calls T07160 T07160

T07160 T07160 DISP 000048C2 Calls T97099 T07160

T07160 T97099 Links to T97000 T97000

T97000 T97000 Links to T97004 T97004

T97004 T97004 Links to T97015 T97015 *

It is important to check the CALL TRACE SUMMARY portion of the AbendAid dump to
clarify the true cause of the abend. In this case, the focus should be on why the
MMR routine was called, not on the bad parameter list passed to the MMR routine.

Also be aware that other strange System abends can occur due to the same type of
problem, incorrect parameters to the user abend routines. When the MMR routine is
called, check for the value of the MMR-USER-RETURN-CODE in the MMR
communication area.

9
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

*Note: When you encounter an abend of this type be sure to notify the application
owner so the issue can be entered in ISSUE LOG and go through the project/issue
prioritization process.

10
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

How to find the current instruction in the core dump.

There are a few abends where it is necessary to know the current instruction. They
are the S0C7 and S0CB abends. This information is found in the NEXT SEQUENTIAL
INSTRUCTION section of the core dump as follows:

COMPUWARE/VF ---------------------------------------------,Row 20 to 38 of
COMMAND INPUT ===>, ,SCROLL ===>,

'TECHPRD.COMPWARE.CX.DDIO.DUMP2' REPT.(L) 7236 T08371 J01982

**********************
* Diagnostic Section *
**********************

A Data Exception was caused by data referenced at displacement 940


from the start of BLW cell 205 (X'CD'). The field contains
X'961FC3C3'. Refer to the data division map in the program listing to
locate the field name.

The field causing the exception is located in a temporary work field


in the TGT. The actual field in error is in Working-Storage of
program T08381.

-------------------------------------------------------------------------------------------
'TECHPRD.COMPWARE.CX.DDIO.DUMP2' REPT.(L) 7236 T08371 J01982

*******************************************
* Next Sequential Instruction Section *
*******************************************

The next sequential instruction to be executed in program


T08381 was at displacement 00004812.

The program was compiled on 16 SEP 1998 and is 00006578 bytes long.

11
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

In the compiled listing find the value of ‘hexloc’ first. You should find the following
section. Within this section you will be looking for the source line # that matches
closest to displacement given in the Next Sequential Instruction of the core dump.
Remembering that hexloc must less than or equal to the displacement.

LINE # HEXLOC VERB LINE # HEXLOC VERB


001925 002678 GO 001977 002678 PERFORM
002018 00269E OPEN 002022 0026B2 MOVE
002024 0026CC MOVE 002025 0026DA MOVE
002027 0026EE MOVE 002028 0026F8 MOVE
.
.
.
002605 004802 ADD 002606 00481C SET <<<<========
002511 004828 PERFORM 002514 004838 EXIT
003986 004848 PERFORM 003988 004854 PERFORM
003991 004876 WRITE 003992 00489E WRITE
003995 0048EC CLOSE 004000 004912 EXIT

Notice that the location of the next instruction is between the ADD verb at source
line 2605 and the SET verb at source line 2606.

*Note: Also remember that a S0C7 can only occur on a ‘decimal’ instruction
(instructions that do arithmatic).

12
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

How to find the value of a non-indexed variable.

Use the example below to locate the value of ws-work-table-entries.

,SDSF OUTPUT DISPLAY SPCWH2FC JOB25887 DSID 102 LINE CHARS '2605'
FOUND
,COMMAND INPUT ===>, ,SCROLL ===>,
2605 1 01838 ADD WS-1 TO WS-WORK-TABLE-ENTRIES <<<<=====
2606 1 01839 SET WORK-TBL-IDX UP BY WS-1.
2607 01840
2608 01841 3000-EXIT.
2609 01842 EXIT.

Locate the BLW cell and displacement of the variable ws-work-table-entries in the
compiled listing.

,SDSF OUTPUT DISPLAY SPCWH2FC JOB25887 DSID 102 LINE 1,038 COLUMNS
33- 112
COMMAND INPUT ===>, , SCROLL ===>,CSR ,
10 WORK-TBL-2-AD-PRICE-VARIES-SW PIC X(1). PT08381V
BLW=0075+B69
10 WORK-TBL-2-COST-VARIES-SW PIC X(1). PT08381V BLW=0075+B6A
10 WORK-TBL-2-REG-RETL-FLAG PIC X(1). PT08381V BLW=0075+B6B
PT08381V
WORK-TABLE-ENTRIES PIC 9(4) VALUE ZERO. CL**3 BLW=00CD+940
IMP
LEGAL-TABLE-ENTRY-COUNT PIC 9(4) VALUE ZERO. CL**3 BLW=00CD+948
IMP

13
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Locate the BLW cell plus the displacement in the core dump.

Working storage referenced by BLW cell 205 (X'CD')

DSPL Address -------------- Data ---------------


00000 12E2F028 000C0000 0000000C 00000000 000C0000 ................
00010 12E2F038 00000000 00004040 00000000 40400000 ...... .... ..
00020 12E2F048 00106C00 0000006C D4000000 00000000 ..%....%M.......
00030 12E2F058 0C000000 00000C00 00000000 6C000000 ............%...
00040 12E2F068 00100C00 00000103 DA000040 D5000000 ........... N...
.
.
.
.
00940 12E2F968 0000000C 40000000 00000000 0C000000 .... ...........
00950 12E2F978 00000C00 00000000 0C000000 00000C00 ................
00960 12E2F988 00000000 00000040 40000000 00404000 ....... .... .
00970 12E2F998 0000000C 00000000 0C400000 00000000 ......... ......
00980 12E2F9A8 000C0000 0000000C 00000000 000C0000 ................
00990 12E2F9B8 0000000C 00000000 00000000 40400000 ............ ..
009A0 12E2F9C8 00004040 00000000 0C000000 000C4000 .. .......... .

14
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

How to find the value of an index.

Indexes are stored as an offset or a displacement from the beginning address of the
table (the variable containing the “INDEXED BY” clause). The formula used to
calculate the value of an index is as follows:

INDEX (value) = (displacement / length of the entry) + 1

Use the example below to locate the value of WKVO-IDX. Notice the IDX=0012…
which is the 18 th full word in TGT. (x’12’ = decimal 18).

,SDSF OUTPUT DISPLAY SPCWH2FC JOB18585 DSID 102 LINE 2,763 COLUMNS 33- 112
,COMMAND INPUT ===>, ,SCROLL ===>,CSR ,
WS-WEEK-DC-VO-TABLE. PT50130V BLW=1065+B7F
10 WS-WEEK-VO-TABLE OCCURS 52 TIMES PT50130V BLW=1065+B7F
INDEXED BY WKVO-IDX. PT50130V IDX=0012+000
15 WS-DC-VO-TABLE OCCURS 250 TIMES PT50130V BLW=1065+B7F
INDEXED BY DCV-IDX. PT50130V IDX=0013+000
17 WS-DC-VO-TABLE-DATA. PT50130V BLW=1065+B7F
20 WS-VO-DC-I PIC S9(04) COMP. PT50130V BLW=1065+B7F
20 WS-VO-VEND-I PIC S9(09) COMP. PT50130V BLW=1065+B81
20 WS-VO-VEND-OP-I PIC S9(04) COMP. PT50130V BLW=1065+B85
20 WS-VO-BULK-ORD-F PIC X(01). PT50130V BLW=1065+B87

15
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Locate the TGT Memory Map in the compiled listing.

SDSF OUTPUT DISPLAY SPCWH2FC JOB18585 DSID 102 LINE 48,134 COLUMNS
02- 81
COMMAND INPUT ===>, ,SCROLL ===>,CSR
*** TGT MEMORY MAP ***

TGTLOC
000000 72 BYTE SAVE AREA
000048 TGT IDENTIFIER
000050 TGT LEVEL INDICATOR
000051 RESERVED - 3 SINGLE BYTE FIELDS
000054 32 BIT SWITCH
000058 POINTER TO RUNCOM
00005C POINTER TO COBVEC
000060 POINTER TO PROGRAM DYNAMIC BLOCK TABLE
000064 NUMBER OF FCB'S
000068 WORKING STORAGE LENGTH
.
.
.
SDSF OUTPUT DISPLAY SPCWH2C JOB27577 DSID 124 LINE 47,963 COLUMNS 01-
COMMAND INPUT ===>, ,SCROLL ===>,

*** VARIABLE PORTION OF TGT ***

00011C BACKSTORE CELL FOR SYMBOLIC REGISTERS


000154 TGT OVERFLOW AREA ADCONS
000168 BASE LOCATORS FOR SPECIAL REGISTERS
000170 BASE LOCATORS FOR WORKING-STORAGE
004B90 BASE LOCATORS FOR LINKAGE-SECTION
004B94 BASE LOCATORS FOR FILES
004BC8 CLLE ADDR. CELLS FOR CALL LIT. SUB-PGMS.
004F14 VARIABLE NAME (VN) CELLS
005170 INDEX CELLS
PP 5668-958 IBM VS COBOL II Release 4.0 09/15/92 T50130

Notice the location of the index cells within the Task Global Table (TGT). 5170 is the
offset from the beginning of the TGT.

16
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends
Locate the Task Global Table (TGT) in the program section of the core dump and
locate the displacement.

BROWSE ,MER3359.T50130.DUMP ,Line,01129521,Col,001 080


Command ===>, ,Scroll ===>,CSR

Task Global Table (TGT)

DSPL Address -------------- Data ---------------


00000 12D5A028 00108001 0000B800 92D59770 92D57916 ........kNp.kN`.
00010 12D5A038 12D59718 12D5EF38 12D5FA68 00010644 .Np..N...N......
00020 12D5A048 12D44238 12D43238 12D5E028 12D44238 .M...M...N\..M..
00030 12D5A058 12D576DC 13FE6028 12D42238 12D5F028 .N....-..M...N0.
00040 12D5A068 12D56EC0 12D421B8 C3F2E3C7 E34EF4F8 .N>{.M..C2TGT+48
00050 12D5A078 03000000 67130220 0008ACC0 00010644 ...........{....
00060 12D5A088 12D5FBE0 0000000D 012877CC 00000000 .N.\............
.
.
.
BROWSE ,MER3359.T50130.DUMP , ,CHARS '0517' found
Command ===>, ,Scroll ===>,CSR
05160 12D5F188 12D55474 12D451BC 12D573F0 12D570FC .N...M...N.0.N..
05170,12D5F198 000001A0 0000000E 00000264 00000000 ................
05180 12D5F1A8 00000063 00000000 00CE38F8 00D24420 ...........8.K..
05190 12D5F1B8 0000CE69 000F9060 000004E4 00001A13 .......-...U....
051A0 12D5F1C8 000550D7 00001A13 00014E24 000169AE ..&P......+.....
051B0 12D5F1D8 00014AD6 00047982 00000000 001D5BA0 ..¢O..`b......$.
051C0 12D5F1E8 000ABA18 000006F0 0000000C 00000000 .......0........
051D0 12D5F1F8 00000000 00000000 00000000 00000000 ................
LINES 12D5F208-12D5F9F8 SAME AS ABOVE
059E0 12D5FA08 00000000 12D5FC70 12D5FD88 12D5FEA0 .....N...N.h.N..
059F0 12D5FA18 12D5FFB8 12D600D0 12D601E8 12D60300 .N...O.}.O.Y.O..
05A00 12D5FA28 12D60418 12D60530 12D60648 12D60760 .O...O...O...O.-

• 5170 is the displacement in TGT where index values are stored.


• 47982 is the hex value stored in the 18th(x’12’ = decimal 18). index within this
portion of the TGT which is also the displacement from the beginning of the table
• 47982 in hex is = decimal 293250
• ( 293250 / 5750 ) = 51 + 1 = 52
• The value of the index in this case is 52 (the 52nd entry in the table).

17
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

How to find the value of a double indexed variable

Use the example below to locate the value of WS-VO-DC-I(WKVO-IDX,DCV-IDX).

We already found the displacement value of WKVO-IDX in the previous example…


which is hex 47982 plus… find the value of the DCV-IDX which is 0000000.

051B0 12D5F1D8 00014AD6 00047982 00000000 001D5BA0 ..¢O..`b......$.

Now we need to find the address of the variable indexed by WSKVO-IDX, DCV-IDX.

Start by locating BLW CELL X’1065’ in the compiled listing which converted to decimal
is BLW CELL 4197 + the displacement of B7F in the core dump listing.

,SDSF OUTPUT DISPLAY SPCWH2FC JOB18585 DSID 102 LINE 2,763 COLUMNS 33- 112
,COMMAND INPUT ===>, ,SCROLL ===>,CSR ,
WS-WEEK-DC-VO-TABLE. PT50130V BLW=1065+B7F
10 WS-WEEK-VO-TABLE OCCURS 52 TIMES PT50130V BLW=1065+B7F
INDEXED BY WKVO-IDX. PT50130V IDX=0012+000
15 WS-DC-VO-TABLE OCCURS 250 TIMES PT50130V BLW=1065+B7F
INDEXED BY DCV-IDX. PT50130V IDX=0013+000
17 WS-DC-VO-TABLE-DATA. PT50130V BLW=1065+B7F
20 WS-VO-DC-I PIC S9(04) COMP. PT50130V BLW=1065+B7F
20 WS-VO-VEND-I PIC S9(09) COMP. PT50130V BLW=1065+B81
20 WS-VO-VEND-OP-I PIC S9(04) COMP. PT50130V BLW=1065+B85
20 WS-VO-BULK-ORD-F PIC X(01). PT50130V BLW=1065+B87

18
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Working storage referenced by BLW cell 4197 (X'65')

DSPL Address -------------- Data ---------------


00000 13DC7028 00000C40 00004040 40404040 40404040 ... ..
00010 13DC7038 40404040 40404040 40404000 00000000 .....
00020 13DC7048 00000000 0C000000 00000C00 00404000 ............. .
00030 13DC7058 0000000C 00000000 0C400000 00000000 ......... ......
.
.
.
00B70 13DC7B98 40400000 00000000 00000000 00004000 ............ .
00B80 13DC7BA8 00000000 00000040 40000000 00000000 ....... .......
00B90 13DC7BB8 00000000 00400000 00000000 00004040 ..... ........

1065B7F (1065 = BLW of variable) and (B7F = the offset of the variable)
+ 47982 which is the value of the index WSKVO-IDX
+ 00000 which is the value of the index DCV-IDX
10AD501 (10AD = BLW of variable) and (501 = the offset of the variable)

Working storage referenced by BLW cell 4269 (X'AD')

004C0 13E0F4E8 00000000 40400000 00000000 00000000 .... ..........


004D0 13E0F4F8 00004000 00000000 00000040 40000000 .. ........ ...
004E0 13E0F508 00000000 00000000 00400000 00000000 ......... ......
004F0 13E0F518 00004040 00000000 00000000 00000000 .. ............
00500 13E0F528 40000000 00000000 00404000 00000000 ........ .....
00510 13E0F538 00000000 00000040 00000000 00000000 ....... ........
00520 13E0F548 40400000 00000000 00000000 00004000 ............ .

And the value of WS-VO-DC-I(WKVO-IDX,DCV-IDX) is x’0000’

How to find the value of a variable indexed by a single index.

Just remember to find the hex displacement of the single index (located in the TGT)
and add it to the address of the variable referenced by the indexes.

Notice: BLW cells that go beyond x’FFF’ will start over at BLW cell x’0’ again.
Working storage referenced by BLW cell 4095 (X'FFF')
Working storage referenced by BLW cell 4096 (X'0')

19
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc
How To Do Application Support
9. Abend Aid - dealing with production abends

Remember Bookmanager..

The AbendAid documentation is now in BookManager BookShelves in ISPF


option 4.28 as follows:

Bookshelf List
Shelves 72 to 87 of 181
Shelf Name Description,
CWAA8E OS/390: Abend-AID MVS 8.4 manuals

See the book, Abend-AID User/Reference Guide, sections

6.3 Using COBOL Basic Support to Resolve an S0C7,


6.3.1 Determining Index and Indexed Field Values with COBOL Basic

20
Printed: 12/23/2010 12/23/2010 ..\Abend Aid tips.doc

You might also like