Last command identification
This process for identifying the last command applies to system dumps, in which it is necessary to identify the abending task.
Step 2 is relevant to transaction dumps.
- If the abend was a local AICA, ASRA, ASRB, or ASRD, find the last entry in the table and work
back until you find an entry for trace point ID AP 1942. If you cannot find AP 1942, then search for
any one of the following: AP 0790, AP 0791, or AP 0792. The trace entry for AP 1942 is made on entry
to APLI's recovery routine. The entries for AP 0790, AP 0791, and AP 0792 are made by DFHSRP, the AP
domain recovery routine that deals with program checks, operating system abends, and runaway task
conditions. The task number for your task is shown in the entry.
If the abend was none of those mentioned above, find the last entry in the table and work back until you find an entry for trace point ID AP 00F2 (PCP abend) that references the abend code. The task number of your task is shown in the entry.
- Now go back until you find the last trace entry showing your task number that was made from trace point ID AP 00E1. The trace entry is located in the EXEC interface program, DFHEIP. The data in the trace entry includes the value of EIBFN, which tells you the specific command your program issued before the abend. For programming information about the possible values that EIBFN can take, and their meanings, see Function codes of EXEC CICS commands. The AP 00E1 trace point also includes the value of register 14 in the RET= field. Register 14 is the return address of the calling routine. See Formatting and interpreting trace entries.
- You might now be able to identify the program that was being run when the abend occurred, from
knowing the structure of the application. If not, you can identify the program by using the
information in the
program information for the current transaction
section of the dump. The failing program is the one most recently linked to (the first program printed in this section). The summary information includes the name of the program, and its load point, entry point, and length. - You should by now have found the program containing the last EXEC command that was issued before the abend. You next need to locate the EXEC command in that program. If you cannot do it by inspection, use the techniques described in the next section.