Diagnosing Abends

Why does my program abort with 0C5 addressing error immediately when it is called from COBOL?
The default COBOL compile option under Enterprise Developer is NOAMODE. This means any parameters passed to an assembler module will be in native PC addressing format and will generate an OC5 addressing error immediately at CALL time. To enable 370 mainframe style addressing in your COBOL program you must use the AMODE(24) or AMODE(31) compiler directive
Why does my program abend immediately when it is called from COBOL?
An abend can be caused by invalid 31 bit addresses being passed to a 24 bit assembler program. In this case, you should set the DATA(24) directive to force all COBOL working storage data addresses to be 24 bits.
What is the fastest way to get help debugging an abend in a large complex application?
Generating a GTF instruction trace might be the fastest way to find the problem. From a GTF trace file, you can determine the failing program, and the exact instruction path followed until the abend. Remember that the trace file gives the actual 370 machine code that is being emulated. This same machine code appears in assembler listing (.PRN) files and can be searched for with any text editor.