Abend-AID COBOL Debugging
Duration: 3 days |
Participants: Application programmers. |
Objectives:
Upon successful completion of this course you will be able to:
- Identify the program or module that was processing at the time of abend and locate the source code instruction last executed and related data values, using Abend-AID and CEE3DMP dumps and control blocks. - Use the Task Management control blocks and Save Area Trace to determine levels of control within the task and to locate the register contents of all application programs. - Use the Data Management control blocks to identify all currently open datasets, the logical record being processed in each, buffer contents, DASD information, and possible causes of Input/Output errors. - Resolve typical abends such as SOC7, SOC1, SOC4, SO13, SB37, SD37, SE37, S001, 5222, S322, U4038, file status errors, etc. |
Overview:
- This course is an Abend-AID dump-reading course. Dump reading is essential for trouble-shooting dumps in production. When developing or modifying programs, programmers often use tools to help with the debugging process. - You will work with many different Enterprise COBOL dumps solving common abends and implementing debugging strategies. To provide dumps that mirror your computer environment, we generally supply abending COBOL programs for compilation and execution on your computer to generate and print dumps for classroom use. |
Prerequisites: COBOL programming experience and knowledge of MVS JCL are required. |
Format: Lecture and classroom workshops. |
Related Courses:
Consider taking these courses next to learn to use more tools to help with the debugging process:
- Xpediter/TSO - Xpediter/CICS - Xpediter/DB2 - IBM z/OS Debug Tool - RDz |
Topic Outline:
- Debugging Tools Compiler listings and control blocks Linkage editor maps CEEDMPs AbendAid dumps (optional) TEST compiler option - Analyzing the Problem Using the abend code and abend message to find cause of error System vs User abends Using compile-time and run-time options Determining the domain of the problem Narrowing the scope of the problem Finding the failing statement Examining related data Tracing through control blocks - Debugging Procedures and Approaches for Solving Data exceptions Addressability errors I/O problems Logic and looping problems Static (linkage editor) and dynamic call problems Miscellaneous data problems Miscellaneous JCL-related problems - Technical Details The Basics MVS z/OS system components Data formats JCL essentials Abend-AID layout Reading a Abend-AID dump CEEDMP layout Reading a CEEDMP Analyzing JES2/JES3 LOG and JCL message output Allocation Deallocation Analyzing compiler output Procedure division LIST and OFFSET Data division MAP Compiler options in effect (PARMs) Memory map TGT Analyzing Binder (linkage editor) output MAP output XREF output Linkage editor options (PARMs) Analyzing CEEDMP and AbendAid output PSW Register save areas (forward and backward chaining) General purpose registers at time of abend Useful Control blocks Analyzing TEST(SYM) or TEST Relating compiler output, linkage editor output, and dumps BLF, BLW, BLL, HEXLOC Interpreting the hexadecimal Multiple entry points Save area trace RSA Locating the failing instruction and the module containing it Locating data Physical sequential VSAM Passed data Locating buffers and dataset label information Dynamic and static calls Effect on dump Tracing flow of control and return points Determining the cause of the abend - Solving these Abends Bad Data - SOC7 Bad op code, bad address, bad logic - SOC1 Storage Protection Error - SOC4 File Errors - SO13, U4038, file status errors, SB37, SD37, SE37 Wrong Length Physical Record - S001 External interrupts, operator cancel, time-outs - S222, S322 Logic errors |
|