0% found this document useful (0 votes)
136 views18 pages

Just Enough Dump: by Gabe Gargiulo

jedump Analysis

Uploaded by

Lalit Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views18 pages

Just Enough Dump: by Gabe Gargiulo

jedump Analysis

Uploaded by

Lalit Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 18

Mainframe information, downloads http://www.theamericanprogrammer.com/programming/index.

html

Just Enough Dump


to be dangerous

B !abe !argiulo
"f ou are loo#ing for M$%, &%/'(), and */os abend codes, go here: http://www.theamericanprogrammer.com/doc/abend+codes.doc ,his document is presented with m compliments. http://www.theamericanprogrammer.com/programming/abend+codes.html
-ou ma use it for reference. -ou ma not use it for teaching a class without m permission -ou ma not claim that ou wrote it. -ou ma not sell it in an wa . .,M/ 0ersion at http://www.theamericanprogrammer.com/programming/1edump.html

Mainframe information, downloads http://www.theamericanprogrammer.com/programming/index.html

,he purpose of this boo#let is to get ou started with dump anal sis when there is no other wa + ou don2t ha0e time to go to a class + ou can2t find a boo# on it 3because there are none4 + ou2re in a class on 5&B&/ and our program bombs and produces a dump. ,his is nowhere near being complete. "t 1ust gets ou going. 6or the complete stor , contact me about courses in dump anal sis. 3and 5&B&/, %7/, 8E99, J5/, ,%&/"%:64 see http://www.theamericanprogrammer.com/programming/ " assume ou ha0e the "BM 5&B&/+; compiler and <bendaid. "f ou ha0e onl 5&B&/+ 1 ou can use the listing at the top of the next page. "f ou don2t ha0e <bendaid ou can use the short section on the old fashioned "BM dump. -ou ha0e to compile the program with the 5&B&/ compiler options M<: and &66%E,. 6/<!3=,=4 is highl desirable too. -ou need the most recent program listing from the compile 1ob that produced the program that abended. "f ou don2t ha0e these, don2t e0en tr to anal >e the dump. =here0er the boo#let sa s ?userid2, replace it with our ,%& userid. Be aware that some companies ha0e messed around with normal naming con0entions, and so ou2ll ha0e to follow their standards.

--------------------------------- Table of Contents ---------------------------------------------- +


@sing <bendaid, how to find 0erb and data in the dump 5&B&/ 5ompile listing <BEBD<"D dump 5&B&/ datat pes Memori>e this: EB5D"5 EDui0alencies 6or &ld ,ime2s %a#e: <nal >ing the &ld "BM Dump ' A C 11 1E 1F

Just Enough Dump to be dangerous. ;

'

Using Abendaid
Compile listing for COBOL-I
5ompile &ptions M<:,5/"%, &btain 5ompile listing. 6ind part of listing that starts G"B,8B/ B<MEH 3/oo#s li#e this4 "B,8B/ B<ME DBMI1+1;' DBMI1+AEF %&@85E B<ME "B:@,+5&@B,E8 &@,:@,+5&@B,E8 B<%E B/I' B/I' D"%:/ DE6"B","&B ))5 D% ' ))6 D% ':

Mar# or note the base and displacement columns for 5&B&/ data items. 6ind part of listing that starts G5&BDEB%ED /"%,"B!H 3/oo#s li#e this4 1 2 1)1 :E86&8M 1)A M&$E 3 <() <6A 1 2 1); <DD 1)E %@B,8<5, 3 <<5 B1) 1 2 3 1)' :E86&8M <D) 1)F 5/&%E B;5

Mar# or note these on the listing: 1 2 3 the displacement of that 0erb the 5&B&/ 0erb %ource %tatement number

Compile listing for COBOL-II

5ompile &ptions B&%%8<B!E,M<:,&66%E,,B@M:8&53M"!4 + unless installation prefers other. &btain 5ompile listing. 6ind part of listing that loo#s something li#e this, depending on 0ersion of compiler: %&@85E B<ME "B:@,+5&@B,E8 &@,:@,+5&@B,E8 B<%E B/=I' B/=I' D"%:/ DE6"B","&B ))5 D% ' ))6 D% ':

3%ee next page4

Mar# or note the base and D"%:/acement columns for 5&B&/ data items. 6ind part of listing that loo#s more or less li#e this depending on 0ersion of compiler: 1 2 1)1 :E86&8M 1)A M&$E 3 <() <6A 1 2 1); <DD 1)E %@B,8<5, 3 <<5 B1) 1 2 3 1)' :E86&8M <D) 1)F 5/&%E B;5

Mar# or note these on the listing: 1 2 3 %ource %tatement number the 5&B&/ 0erb the displacement of that 0erb

Just Enough Dump to be dangerous. '

COBOL Compile Listing


PP 5668-958 IBM VS COBOL II Release 4.0 09/15/92 Date 02/03/00Time 14:25:05 Page 1 000001 000100 IDENTIFICATION DIVISION. 000002 000200 PROGRAM-ID. TEST1. 000003 000800* 000004 000900 ENVIRONMENT DIVISION. 000005 001000 CONFIGURATION SECTION. 000006 001100* 000007 001500 INPUT-OUTPUT SECTION. 000008 001600 FILE-CONTROL. 000009 001700* 000013 002100 DATA DIVISION. 000014 002200 FILE SECTION. 000015 002300* 000039 005502* 000040 005503 01 HEADER-LINE-1. BLW=0000+000 000041 005504 05 FILLER PIC X(59) VALUE SPACES. BLW=0000+000,0000000 000042 005505 05 FILLER PIC X(07) VALUE 'PURELY '. BLW=0000+03B,000003B 000043 005506 05 FILLER PIC X(10) VALUE 'FICTITIOUS'. BLW=0000+042,0000042 000044 005508 05 FILLER PIC X(56) VALUE SPACES. BLW=0000+04C,000004C 000045 005560* 000046 006106 01 COUNTERS-ALL. BLW=0000+088 000047 006107 05 SAMPLE-ACC PIC 9(04) VALUE 0 USAGE COMP-3. BLW=0000+088,0000000 000048 006108 05 EMPLOYEE-ACC PIC 9(02) VALUE 1 USAGE COMP-3. BLW=0000+08B,0000003 000049 006109 05 PAGE-NUM-ACC PIC 9(03) VALUE 1 USAGE COMP-3. BLW=0000+08D,0000005 000050 006110* 000052 006500 PROCEDURE DIVISION. 000053 006510 DISPLAY 'PROGRAM TEST1'. 000054 006600 MOVE ALL '!' TO COUNTERS-ALL. 000055 006610 ADD 1 TO EMPLOYEE-ACC 000056 006620* 000057 006630*

Data Division Map Data Definition Attribute codes (rightmost D = Object of OCCURS DEPENDING G = E = EXTERNAL O = F = Fixed length file OG= FB= Fixed length blocked file R = Source LineID 2 40 41 42 43 44 46 47 48 49 Hierarchy and Data Name PROGRAM-ID TEST1 ---------01 HEADER-LINE-1 . . . . . 02 FILLER. . . . . . . . 02 FILLER. . . . . . . . 02 FILLER. . . . . . . . 02 FILLER. . . . . . . . 01 COUNTERS-ALL. . . . . . 02 ALL-EMPLOYEES-DIV-ACC 02 EMPLOYEE-ACC. . . . . 02 PAGE-NUM-ACC. . . . . column) have the following meanings: GLOBAL S = Has OCCURS clause U = Group has own length definition V = REDEFINES VB= Base Locator . . . . . . . . . .. . .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hex-Displacement Blk Structure 000 000 03B 042 04C 088 088 08B 08D

Spanned file Undefined format file Variable length file Variable length blocked file Asmblr Data Definition DS DS DS DS DS DS DS DS DS 0CL132 59C 7C 10C 56C 0CL7 3P 2P 2P Data Data Type Attr Group Display Display Display Display Group Packed-Dec Packed-Dec Packed-Dec

BLW=0000 BLW=0000 BLW=0000 BLW=0000 BLW=0000 BLW=0000 BLW=0000 BLW=0000 BLW=0000

0 0 0 0

000 000 000 000

000 03B 042 04C

0 000 000 0 000 003 0 000 005

LINE # HEXLOC VERB 000053 0001D8 DISPLAY 000061 00020A GOBACK *** TGT MEMORY MAP *** TGTLOC

LINE # HEXLOC VERB 000054 0001E6 MOVE

LINE # HEXLOC VERB 000055 0001EC ADD

End of compilation 1, program TEST1, no statements flagged. Return code 0 6rom http://www.theamericanprogrammer.com commercial use or resale of this document is a 0iolation of cop right laws.

Abendaid Dump
Finding the verb /ocate the part of the dump that states Gnext seDuential instruction to be executedH "t will loo# li#e this: 3see page J4 next seDuential instruction to be executed in program ,E%,1 was at displacement 165 8efer to the 0erb displacements in the compile listing. 3page F4 6ind the highest displacement that is less than the one shown in the dump 3<B)4 loo# at the displacements 1EF is less than the one shown in the dump 31654. ,r the next higher one. 1E5 is less than the one shown in the dump 31654. ,r the next higher one. ;)< is greater than the one shown in the dump 31654. !o bac# one. 1E5 is the displacement ou want. "t is an <DD. "ts source statement number is EE /oo# at the compile listing to see the <DD 0erb in context. Bote the data items that it affects. Finding the offending data in 0C dumps! /ocate the part of the dump that states Ga data exception was caused b data at displacement )JB from the start of B/ cell ))H 3page (4 8efer to the compile listing 3page E4 for the 5&B&/ data item at displacement )JB at B/I). -ou2re on our own now. -ou #now the 0erb and the data in Duestion. %tud the program to determine what happened.

A B E N D - A I D TUESDAY 03 FEB ***************************************************************** * A b e n d - A I D D i a g n o s t i c s * * Copyright (C) 1976, 1997, Compuware Corporation. * * Unpublished - Rights Reserved Under The * * Copyright Laws Of The United States. * ***************************************************************** Model - 902X OPSYS - MVS/SP 5 CP FMID - CBA0010 System - S001 DFSMS/MVS - V1R2M0 JES2 - SP 5 Completion Code - S0C7 Job - MYJOB01 Step - RUNIT Time - 14.25.13

PAGE

******************************************* * Next Sequential Instruction Section * ******************************************* The next sequential instruction to be executed in program TEST1 was at displacement 000001FC. The program was compiled on 03 FEB and is 00000400 bytes long.

It is part of load module TEST1. The module was loaded from STEPLIB library mytest.LOAD It was link edited on 03 FEB and is 00000890 bytes long. The last known I/O operation or call was issued from program TEST1 at displacement 000001E6.

A B E N D - A I D

PAGE

Supporting Environmental Data Abend PSW - 078D1000 8000696C Prog PSW - 078D1000 8000696C Load Module - TEST1 ILC - 06, INTC - 07 Registers at time of error A(TEST1 A(TEST1 ) + 000001FC ) + 000001FC Entry Point Address - 00006770 Load Point Address - 00006770

(Descriptions based on resolution as 31 bit addresses) ********************** * Diagnostic Section * **********************

A Data Exception was caused by data referenced at displacement 08B from the start of BLW cell 00 (X'0'). The field contains X'5A5A'. 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 TEST1. From http://www.theamericanprogrammer.com commercial use or resale of this document is a violation of copyright laws. Because the program is re-entrant, Working-Storage is located outside of the program. A Data Exception is caused when a computational-3 field has an invalid digit (not 0-9), or its last byte contains an invalid sign (not F, C, or D).

Working-Storage Section Working storage referenced by BLW cell 0 (X'0') DSPL Address --------------------------------- Data --------------------------------00000 00048018 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 00020 00048038 40404040 40404040 40404040 40404040 40404040 40404040 404040D7 E4D9C5D3 PUREL 00040 00048058 E840C6C9 C3E3C9E3 C9D6E4E2 40404040 40404040 40404040 40404040 40404040 Y FICTITIOUS 00060 00048078 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 00080 00048098 40404040 00000000 5A5A5A5A 5A5A5A

"hat#s that in the Dump$% COBOL Datat&pes


,his section will prepare ou for the shoc# of seeing our program?s data in the dump. ,he dump does not indicate in an wa the datat pe of what ou are loo#ing at. !et familiar with 5&B&/ datat pes.
DI'(LA) AL(*A+U,-.IC or Chara/ter 5&B&/ :icture: 5ontains: &n #e boardK $isible on screen, printerK MathK Examples: , pical uses: :"5 999 all characters possible -es 3most characters4 es, but some configurations not printable no <B5 1;' L;'

E0er thing but arithmetic, subscripts, indexes DI'(LA) De/imal0 unsigned

5&B&/ :icture: 5ontains: &n #e boardK $isible on screen, printerK MathK Example: , pical uses:

:"5 (3E4 )+( es es es, but slow alwa s positi0e, no matter what 1;' Bumber fields t ped in on #e board displa ed on screen, printer

DI'(LA) De/imal signed 5&B&/ :icture: 5ontains: &n #e boardK $isible on screen, printerK :"5 %(3E4 )+( es but signed digit has to be entered as a letter "Mm not suggesting ou do thatL es but signed digit appears as a letter

"n the final digit the sign N or + is merged with the number causing it to appear as a letter. NEA';1 loo#s li#e EA';< +EA';1 loo#s li#e EA';J Bote: N) loo#s li#e O +) loo#s li#e a space N; loo#s li#e B N( loo#s li#e " +; loo#s li#e P +( loo#s li#e 8 MathK , pical uses: es, but slow .ardl an 1ustifiable

(a/1ed De/imal signed 2all pa/1ed de/imals should be signed3 5&B&/ :icture: :"5 %(3E4 :<5PED+DE5"M</ or :"5 %(3E4 5&M:+' )+( no no. loo#s 0er strange in hex, NEA';1 loo#s li#e EA';15 pic s(3E4 comp+' ta#es up ' b tes .ow to figure displa length to pac#ed length di0ide b ; drop decimal fraction add 1 .ow to figure pac#ed length to displa length %ubtract Q b te double it 3alwa s gi0es an odd number4 es 3fast4 <ccumulators, counters, subscripts, mone , fields in program or files
length should be odd number

5ontains: &n #e boardK $isible on screen, printerK <ctual length in b tes

MathK , pical uses:

Binar& signed 2all binar& should be signed3 5&B&/ :icture :"5 %(3A4 B"B<8or :"5 %(3A4 5&M: )+( no no. loo#s 0er strange in hex, 1 loo#s li#e ) 1 :"5 %(314 thru %(3A4 gi0es a half word, ".E. two b tes :"5 %(3E4 thru %(3(4 gi0es a full word, ".E. four b tes :"5 %(31)4 thru %(31J4 gi0es a double word, ".E. eight b tes es 3real fast, pro0ided it2s loaded onto a word boundar 4 "nteger accumulators, counters, subscripts, fields in files 3not too common4

5ontains: &n #e boardK $isible on screen, printerK <ctual length in b tes

MathK , pical uses:

,emori4e this% -BCDIC -5uivalen/ies


<s it appears in storage G.E9H A) 6) 61 6; 6' 6A 6E 6F 6C 6J 6( 51 5; 5' 5A 5E 5F 5C 5J 5( D1 D; D' DA DE DF DC DJ D( E; E' EA EE EF EC EJ E( =hat it prints as space ) 1 ; ' A E F C J ( < B 5 D E 6 ! . " J P / M B & : 7 8 % , @ $ = 9 *

For Old Time#s 'a1e% Anal&4ing the Old IB, Dump


1. /oo# at the dump Botice the % stem <bend 5ode %xxx+xx

;. /oo# up the % stem <bend 5ode using the 7uic# 8eference 37=4 product, an "BM manual or our neighbor2s brain. Determine the reason wh M$% decided to terminate our program "n the example, this is a decimal data exception. '. Bote: %x;; t pe abends happen when M$% decides to terminate our program because a s stem limit was exceeded 3time, 5:@, wait, print lines4 -ou ma be able to determine something b loo#ing through the dump, but probabl not. A. @ser abends are not alwa s in shown in documentation. ,he dump ma not be useful in the case of user abends. E. %ee the dump. Botice the abend offset. ,his is a hex number. F. %ee the dump. Botice the load module name, where it sa s B<MEI C. "s the load module name the same as our programK that is: J5/ E9E5 :!MIload module name DB; 8@B :8&!8<M3load module name4 -es + continue Bo + get the program compile listing for the right program J. Rif ou ha0e the short 0erb offset listing: parm: &66%E,S %ee the 0erb offsets in the compile listing 1 %earch for the word GhexlocH /oo# for the abend offset -ou will rarel find itL "f ou find it, mo0e bac# one 0erb 3to the left4 "f ou don2t find it, find the 0erb offset nearest to the abend offset, but lower than the abend offset. ,he line number of the statement that abended is shown. 8efer to the program listing to see what happened.

J. Rif ou ha0e the long assembler listing: parm: /"%,S %ee the assembler language listing /ocate the 0erb with the same offset as the abend offset. "t will be there, so ou will find it. Mo0e up, to the 5&B&/ 0erb abo0e. Botice the source line number. (. 6ind the source line determined in J. ,his is the line of the program that abended 1). %a goodb e to the dump.
5reated b http://www.theamericanprogrammer.com. -ou ma cop this document pro0ided this notice is attached.

----------------------------------------------- Table of Contents ---------------------------------------------- +


@sing <bendaid, how to find 0erb and data in the dump 5&B&/ 5ompile listing <BEBD<"D dump 5&B&/ datat pes Memori>e this: EB5D"5 EDui0alencies 6or &ld ,ime2s %a#e: <nal >ing the &ld "BM Dump ' A C 11 1E 1F

About this series!


%ometimes ou need 1ust enough information so that ou can do something + it gets ou started when ou don2t ha0e time to learn e0er thing. !et them at
http://www.theamericanprogrammer.com/programming/justenuf.html Other Boo1s for professionals% .-66 .eferen/e <ll 8E99 0erbs, #e words, and built+in functions as found in M$%, $M/5M% and &%/;. <bout 1)) pages. 8ead to ship. &rder from M$% ,raining 3J))4 'EF ()('. http://www.mvs-training.com The .-66 Language on T'O .ow to use the 8E99 programming language on ,%&. "nformation, ordering at: http://www.theamericanprogrammer.com/programming/rexx.programming.book. html I'(F 'ervi/es% Using the Dialogue ,anager 7ith .-66 .ow to create "%:6 panels on ,%&. Examples are in 8E99. "nformation, ordering at: http://www.theamericanprogrammer.com/programming/dialogue.manager.ispf. book.html
5reated b http://www.theamericanprogrammer.com. -ou ma cop this document pro0ided this notice is attached.

-ou will find a large selection of mainframe boo#s at: http://www.theamericanprogrammer.com/boo#s/index.html -ou2ll find manuals on ,%&, J5/, 8E99, 5&B&/, DB; at: http://www.theamericanprogrammer.com/programming/manuals.html

You might also like