Save areas used by attached processor support are DUKPSAVE, SIGSAVE, LOKSAVE, KFASAVE, SWTHSAVE, LOCKSAVE, and SVCREGS. These save areas are
all in the PSA. All except LOCKSAVE and and SVCREGS are 16 words in
size. Use the save areas to trace backwards and find the previous module
executed.
1. SAVEAREA An active save area contains the caller's return address in SAVERETN (displacement X'OO'). The caller's base register is saved
in SAVER12 (displacement X'04'), and the address of the save area
for the caller is saved in SAVER13 (displacement X'OS'). Using SAVER13, you can trace backwards again.
2. BALRSAVE All the general registers saved in BALRSAVE after branching and
linking (via BALR) to another routine. Look at BALR14 for the
return address saved, BALR13 for the caller's save area, and BALR12
for the caller's base register, and you can trace module control
backwards.
3. FREESAVE All the general registers are saved in FREESAVE before DKKFRE executes. Use this address to trace module control backwards.
Field FREER15 FREER14
FREER13
FREER12
FREER1
FREERO
4. DUMPSAVE Contents Theentry point (DMKFREE or DKKFRET) '. The saved return address. The caller's save area (unless the caller was called via
BALR).
The caller's base register. Points to the block returned (for calls to DKKFRET). Contains the number of doublewords requested or returned.
All the general registers at the time of the error are saved in DUMPSAVE (displacement X'500') before DMKDMP is called. They are
saved by DMKPSA after a restart, by DMKSVC after an SVC 0, and by DMKPRG. The registers are stored in DUMPSAVE in the order GRO through GR15. GR12 usually contains the base register for the
module executing at the time of the error.
5. SIGSAVE SIGSAVE (displacement X'540') is used as a save/work area by DMKEXT, an attached processor-only module that handles all
signaling requests. When a signal request is issued, DMKEXTSP is called. On entry, DMKEXTSP stores GR12 through and GRO through GR6. GR7 through GR11 are not saved. The remainder of SIGSAVE is used as a work area. GR14 contains the caller's return
address. Part 1. Debugging with VM/370 49
6. LOKSAVE registers are stored in LOKSAVE (displacement DMKLOK executes. DMKLOK is an attached
module that manipulates certain attached
All the general X'580') before
processor-only
processor-only
through GR15.
locks. The registers are stored in the order GRO GR14 contains the caller's return address.
7. MFASAVE All the general registers are stored in MFASAVE (displacement X'5CO') before DMKMCTMA executes. DftKMCTMA is the entry into DftKMCT, an attached processor-only module,that handles malfunction
alert interrupts. The registers are stored space in the order GRO through GR15. GR14 and GR1S contain the caller's return address.
8. SWTHSAVE All the general registers are stored in SWTHSAVE (displacement X'600') by DMKSTK and DMKVMASW. DftKVftASW is an entry that is used
only in an attached processor system to switch a user's page table
pointers. The registers are stored in the order GRO through GR15.
GR14 contains the caller's return address. All entries to DftKSTK store registers GRO through GR15 in SWTHSAVE. 9. LOCKSAVE LOCKSAVE (displacement X'640') is a four-word save area used by the LOCK macro to save GR14, GR15, GRO, and GRl if the SAVE option of
the LOCK macro is specified. 10. SVCREGS SVCREGS (displacement X'650') is a four-word save area used to save
GR12 through GR15 at the time of an SVC interrupt. VIRTUAL AND REAL CONTROL BLOCK STATUS Examine the virtual and real control blocks for more information on the
status of the CP system. Figure 9 describes the relationship of the CP control blocks; several are described in detail in the following
Faragraphs.
The address of the VMBLOK is in general register 11.
1. 50 Examine the following VMBLOK fields:
The virtual machine (displacement X'58'). running status: IBM VM/3 7 Q System running status
The value of
is contained in VMRSTAT this field indicates the
Previous Page Next Page