2. Examine the SVC old PSi, the SVC interrupt code, and the abend code
to find whether or not a CP routine issued an SVC O. The SVC old PSi {SVCOPSW} is located at 1'20', the SVC interrupt code (INTSVC) is at X'8A', and the abend code (CPABEND) is at X'314'. The abend code (CPABEND) is a fullword. The first three bytes
identify the module that issued the SVC 0 and the fourth bite is a
binary field whose value indicates the reascn for issuing an SVC O. Use the CP system load map to identify the module issuing the SVC O. If you cannot find the module using the CP system load map. refer to "Identifying a Pageable Module". Figure 41 in Appendix A
describes the format of an Extended Control PSi. 3. Examine the old PSi at X
1
08'.
If an abnormal termination occurs
because the operator pressed the system restart button, the old PSi at location X'08' points to the instruction that was executing when CP recognized the abnormal termination. Figure 41 in Appendix A describes the format of an Extended Control PSi. 4. For a machine check, examine the machine check old PSi and the
logout area. The machine check old PSi (8COPSi) is found at X'30' and the fixed logout area is at X
1
100'.
Also examine the machine
check interrupt code (INTMC) at X'E8'. COLLECT INFORMATION Examine several other fields in the PSA to analyze the status of the
system. As you progress in reading the dump, you may return to the PSA to pick up pointers to specific areas (such as pointers to the real
control blocks) or to examine other status fields.
The following areas of the
information. PSA may contain useful debugging
1. CP Running Status Field
The CP running status is stored in CPSTAT at location X'348'. The
value of this field indicates the running status of CP since the
last entry to the dispatcher. Value of X'80' X'40' X'20' X'08' 2. Current User Comments cp-Is-In wait state CP is running the user in RONUSER CP is executing a stacked request CP is running in supervisor state
The PSi that was most recently loaded by the dispatcher is saved in RUNPSW at location X'330', and the address of the dispatched is saved in RUNUSER at location X'338'. Also, examine the contents
of control registers 0 and 1 as they were when the last PSi was
dispatched. See RUNCRO (X'340') and RONCR1 (X'344') for the
control registers. Part 1. Debugging with V8/310 41
Also, examine the CP internal trace table to determine the events
that preceded the abnormal termination. Start with the last event
recorded in the trace table and read backward through the trace table
entries. The last event recorded is the last event that was completed.
The TRACSTRT field (location X'OC') contains the address of the start
of the trace table. The TRACEND field (location X'10') contains the
address of the byte following the end of the trace table. The address
of the next available trace table entry is found in the TRACCURR field
(location X'14'). To find the last recorded trace table entry, subtract X'10' from the value at location X'14',. The result is the address of
the last recorded entry. Figure 8, earlier in this section, describes
the format of each type of trace table entry. Igte: If the system was in attached processor mode, the trace table
pointers are in absolute page zero.
REGISTER USAGE In order to trace control blocks and modules, it is necessary to know
the CP register usage conventions.
The 16 general registers have many
operation. The following table shows
registers.
uses that vary depending upon the
the use of some of the general GR 1
GR 2
GR 6,7,8
GR 10 GR 14,15
Contents The-virtual address to be translated.
The real address or parameters.
The virtual or real channel, centrol unit, and device
control blocks.
The address of the active IOBLOK. The external branch linkage.
The following general registers usually contain the same information. GR 11
GR 12
GR 13
Contents The-address of the active iMBLOK. The base register for the module
The address of the current save
called via an SiC. executing.
area if the module was Use these registers along with the CP control blocks and the data in
the prefix storage area to determine the error that caused the CP abend. SAVE AREA CONVENTIONS There are three save areas that may be helpful in debugging CP. If a
module was called by an SVC, examine the SAVEAREA storage area. SAVEAREA is not in the PSA; the address of the SAVEAREA is found in
general register 13. If a module was called by a branch and link, the
general registers are saved in the PSA in an area called BALRS1VE (X'240'). The DMKFRE save area and work area is also in the PSI: these
areas are used only by the DMKFREE and DMKFRET routines. The DMKFRE save area (FREESAVE) is at location X'280' and its work area (FREEWCRK) follows at location X'2CO'.
Previous Page Next Page