Friday, March 16, 2007

Mainframes: Get back to the basic stuff and know how do read abend dumps

I recall in a job interview with Legent back in 1989 being asked if I could solve mainframe program abends without AbendAID, the usual tool in production shops to help programmers solve production abends in batch. An important item in Abendaid is the next sequential instruction to be executed (the NSI), but not always available for some stranger abends or even some SOC4's.

It's good to be familiar with some of the parts of a COBOL dump. The TGT is the Task Global Table, which comprises a SAVEAREA, BL cells (matching the program DMAP), TEMP STORAGE, and BLL CELLS which apply to items in the Linkage Section of the DATA DIVISION. Also there are INDEX CELLS. These items might point to definitive information about a load module even if the definitive compile has somehow been lost through careless move procedures.

R13 has the address of the TGT. R14 has the address of the RETURN to your program from a CALLED program, and R15 has the address of the entry point of a called program.

A good reference for this sort of stuff is Edward A. Kelly, "An Invitation to MVS Using COBOL," all the way back to 1989, TAB publishing, 222 pages.

No comments: