Information
Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Intercepting abends


When an abend is encountered, execution automatically pauses, the execution arrow points to the offending instruction, and a message indicating the action to take is displayed. See the following figure.

Intercepting a S0C4 Abend

------------------------ CODE DEBUG TSO - SOURCE -------------------------------
COMMAND ===>                                                    SCROLL ===> CSR
  SOC4 ABEND ENCOUNTERED, USE "AA SNAP" FOR ADDITIONAL INFORMATION
         ** END **



------   --------------------------------- SOC4 Abend at TRIMAINA:53/AMODE 24 <>
000051             USING TRIMAINA,R12     *
000052             LA    R11,SAVEAREA     *
=====>             ST    R13,4(R11)       *    CHAIN SAVE AREAS
000054             ST    R11,8(R13)       *
000055             LR    R13,R11          * 

If you have Abend-AID Release 7.0.2 or above, the message instructs you to use the AA SNAP command. This displays the Snapshot report containing context sensitive diagnostic information, a comprehensive analysis of the abend, and environmental information.

If you do not have Abend-AID, the message refers you to the session log, which always gives you a diagnostic summary of the abend. For example, type LOG on the primary command line to show the test session log as shown in the following figure.

Abend Information in the Session Log

------------------------- CODE DEBUG TSO - LOG ---------------------------------
COMMAND ===>                                                    SCROLL ===> CSR
PROGRAM: TRIMAINA   MODULE: TRIMAINA  COMP DATE: 07/20/1995  COMP TIME: 15:41:00
------------------------------------------ SOC4 Abend at TRIMAINA:53/AMODE 24 ->
BEFORE TRIMAINA:
AFTER TRIMAINA:
PAUSE BEFORE TRIMAINA
BEFORE BREAKPOINT ENCOUNTERED
  VERIFY   TRIMAINA:52
000052         LA   LA          000006    > 41B0 C0F0      :8010E2B0
ZAP 000052
000052         LA   L           000006    > 58B0 C0FO      :8010E2B0
GO
XPD0439 RA105   SOC4 ABEND AT 000C7382  REASON CODE 00000004
    PSW AT TIME OF ERROR  078D0000 - 000C7386
    DATA AT PSW - C0F050DB  000450BD  000818DB
    GP REGISTERS AT ABEND   0 000A2000  1 8009ACA0  2 80105BFC  3 8009A7AA
                            4 067B1E90  5 067A5EC8  6 00000000  7 801E3B2A
                            8 067B6804  9 867A0F34 10 000A2000 11 00000000
                           12 000C7378 13 000A4598 14 00105EFC 15 000C7378
    INTERRUPT ADDRESS AT OFFSET 00000A IN LOAD MODULE TRIMAINA

*** SOC4    ABEND IN USER MODULE TRIMAINA AT STATE 000021 AT OFFSET 00000A
*** ACTIVE APPLICATION MODULE AT TIME OF ABNORMAL TERMINATION IS TRIMAINA **

The Command-and-syntax-reference contains commands that are useful for diagnosis.

If a dump is necessary, type SET DUMP ON from the primary command line to write the dump to a preallocated SYSUDUMP DD. No dump is produced if SYSUDUMP is not allocated. You can also prevent Code Debug TSO from intercepting abends by executing SET ABNDEXIT OFF before the abend. To prevent Code Debug from intercepting S0C1 abends, use SET ESPIE OFF and SET ABNDEXIT OFF. When an abend is encountered, your test session is terminated immediately and you are returned to the test screen.

In the example (Intercepting a S0C4 Abend screen), statement 52, LA (load address), was modified to L (load) and register 11 was loaded with a wrong address. A S0C4 occurred when a ST (store) on statement 53 was attempted at 4 bytes from the address in register 11. See the Abend Information in the Session Log screen. At this point, you can correct the abend and resume execution, or terminate the test by pressing PF4 (EXIT). Verify statement 52 by placing the letter V in the line command area and pressing Enter. The Verify display shows that the OPCODE is changed from LA to L. To make a correction, type over the OPCODE L with LA or object code X'58' with X'41' and press Enter. Type GOTO 52 and press Enter to redirect the program to resume execution from statement 52 again. Then press PF9 or enter GO 1 to reexecute the failed instruction that was corrected under Code Debug TSO. You should be able to successfully continue your test session.

Additional information is also available in Handling Run-Time Errors.



 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI DevX Code Debug for TSO and IMS 17.02