Steps for identifying the module and component

About this task

Before you begin: You need to know how to use IPCS and also have access to the following:

You should also be able to locate and use:

Perform the following steps to identify the module that caused the abend and the offset of the failing instruction into the module.

Procedure

  1. Do one of the following, depending on the problem data available.
    • For an SVC dump, obtain the component name, component identifier, and module name from the dump title.
    • Obtain the PIDS/ccccccccc and RIDS/cccccccc symptoms from the search argument. PIDS is the program identifier, which is the four character product identifier and the five character component identifier. RIDS identifies the module.

      If the search argument in an SVC dump does not identify the program and module or if the problem involves multiple abends, analyze the dump for the failing task or service request. See z/OS MVS Diagnosis: Tools and Service Aids for information about analyzing an SVC dump.

    • Obtain the address in the right half of the program status word (PSW) in STATUS FAILDATA dump output. The zArchitecture PSW is 128 bits (16 bytes). The combination of bits 31 and 32 show the current addressing mode. These are the low order bit of the left half and the high order bit of the right half of the PSW. The meanings are as follows:
      • 00 - 24-bit mode
      • 01 - 31-bit mode
      • 10 - Invalid
      • 11 - 64-bit mode
      In some places the PSW is shown in a shorter 64-bit (8 bytes) form. This indicates that the addressing mode is 24-bit or 31-bit and the PSW is shown in an ESA/390 form. In that case bit 31, the low order bit in the first half, shows the addressing mode:
      • 0 - 24-bit mode
      • 1 - 31-bit mode
      Subtract the instruction length from the PSW address to obtain the address of the failing instruction. Do not subtract the instruction length in the following cases; the failing instruction is at the PSW address.
      • Program check interruptions for which the processing of the instruction identified by the old PSW is nullified. See z/Architecture® Principles of Operation for the interruption action. Some examples are:
        • Page translation exception: interrupt code = 0011
        • Segment translation exception: interrupt code = 0010
        • Access register translation exception
          The following interrupt codes result in the operation being nullified:
          • LFX translation exception = 0026
          • LSX translation exception = 0027
          • ASX-translation exception = 0021
          • ASTE-validity exception = 002B
          • ASTE-sequence exception = 002C
          • LSTE sequence exception = 002E
          • ASTE instance exception = 002F
        • Region-first-translation exception
        • Region-second-translation exception
        • Region-third-translation exception
      • Obtain the PSW and registers for the error from the STATUS CPU REGISTERS subcommand.
        In the following STATUS CPU REGISTERS output, the address can be found in the second half of the PSW. Note that this presentation uses both the first (bit 32) and last (bit 63) bits in the PSW shown combine to indicate addressing mode. Bit 64 will be on when the PSW represents code running in 64 bit mode.
        CPU STATUS:                                           
         PSW=070C1000  83D00B72 (RUNNING IN PRIMARY, KEY 0, AMODE 31, DAT ON)
             DISABLED FOR PER                                 
           ASID(X'0015') 03D00B72. DATSVY02+03CA IN EXTENDED PRIVATE
          ASCB21 at F9CD80, JOB(DAESVY01), for the home ASID  
          ASXB21 at 6FE038 for the home ASID. No block is dispatched
          HOME ASID: 0015 PRIMARY ASID: 0015 SECONDARY ASID: 0015
          GPR VALUES                                          
              0-3  00000000  03D017B0  00000000  03D01A12
              4-7  03D00EC1  03D00CE8  006D4FF8  FD000000
              8-11 03D025BF  83D007A8  03D015C0  03D017A7
             12-15 03D01830  03D015C0  03D019EB  03D00DA9
        IEA11015I The requested ALETs are zero.               
          CONTROL REGISTER VALUES                             
              0-3  5EB1EE40  00C0407F  002B5040  00800015
              4-7  00000015  01756540  FE000000  00C0407F
              8-11 00000000  00000000  00000000  00000000
             12-15 01F7C27F  00C0407F  DF881755  7F704008
        THE PRECEDING STATUS CPU INCLUDED THE REGS OPTION
        Example for for 31-bit:
        PSW: 040C0000 816B65A6 Instruction Length: 04 Interrupt Code: 0011
        Failing instruction text: 58F0C030 50F0B222 5BF0B240
        Translation Exception Address: 00000000_7F37B003 
        Example for 64-bit:
        Time of Error Information:
        PSW: 04046001 80000000 00000000 0178F356
        Instruction length: 04 Interrupt code: 0004
        Failing instruction text: 000A5023 00005032 00044172 

        STATUS CPU REGISTERS supplies the name of the failing module and its offset without having to do a separate WHERE subcommand.

  2. Do one of the following:
    • If analyzing the dump interactively, use the instruction address in an IPCS WHERE subcommand to obtain the name of the load module and the offset of the address into the load module. If the module name is not proceeded with IEANUC01, then IPCS has given the load module name. If you enter the STATUS CPU REGISTERS subcommand, a WHERE is performed automatically.

      Use the AMBLIST service aid to list the CSECTs in the load module. Use the offset into the load module to identify the CSECT containing the failing instruction. Then subtract the starting address of the CSECT from the instruction address to obtain the offset into the CSECT.

      For instructions on using the AMBLIST service aid, see AMBLIST in z/OS MVS Diagnosis: Tools and Service Aids.

    • If the WHERE command does not present a module name, follow this procedure:
      • Using the IPCS Browse panel, enter the PSW instruction address and ASID obtained from the time of error information. Browse backwards looking for the CSECT name eye-catcher. IBM module names are generally followed by an assembly date and a product identifier or PTF level, such as HBB7720; most eye-catchers are at the beginning of a module, but some are at the end.
  3. The module prefix identifies the component, subsystem, or product, if provided by IBM. See the module identification chart in z/OS MVS Diagnosis: Reference.
    For example, using the information in the following output from you can determine what component was involved in an error from the module prefix. The ADY module prefix indicates a DAE-type error.
    Module       Component                         Product   Component
    Prefix         Name                              ID          ID
     ADF       TSO and TSO/E session manager        5665	   	28505
     ADY       Dump analysis and elimination (DAE)  5752     SC143
  4. Continue diagnosis as follows:

Results

Related information: