Save Area Conventions
Register
GR 1
GR2
GR 6,7,8
GR10 GR 14, 15
Contents
The virtual address to be translated.
The real address or parameters.
The virtual or real channel, control unit, and device
control blocks.
The address of the activeIOBLOK. The external branch linkage.
The following general registers usually contain the same information.
Register
GR 11
GR 12
GR 13
Contents
The address of the activeVMBLOK. The base register for the module executing.
The address of the current save area if the module
was called via anSVC. Use these registers along with the CP control blocks and the data in the prefix stor
age area to determine the error that caused theCP abend.
There are three save areas that may be helpful in debuggingCPo If a module was
called by anSVC, examine the SA VEAREA storage area. SA VEAREA is not in
thePSA; the address of the SA VEAREA is found in general register 13. If a mod
ule was called by a branch and link, the general registers are saved in thePSA in an
area calledBALRSAVE (X'240'). The DMKFRE save area and work area is also
in thePSA: 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 (FREEWORK) follows at location X'2CO'. Save areas used by attached processor and multiprocessor support are DUMPSAVE, SIGSAVE, LOKSA VE, MFASA VE, SWTHSAVE, LOCKSA VE,
andSVCREGS. These save areas are all in the PSA. All except LOCKSA VE 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 SA VERETN (dis
placementX'OO'). The caller's base register is saved in SAVER12 (displace
mentX'04'), and the address of the save area for the caller is saved trace
backwards again.
2.BALRSAVE All the general registers are saved in BALRSA VE 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 FREESA VE before DMKFRE executes. Use this address to trace module control backwards.
Introduction to Debugging509
Register
GR 1
GR2
GR 6,7,8
GR
Contents
The virtual address to be translated.
The real address or parameters.
The virtual or real channel, control unit, and device
control blocks.
The address of the active
The following general registers usually contain the same information.
Register
GR 11
GR 12
GR 13
Contents
The address of the active
The address of the current save area if the module
was called via an
age area to determine the error that caused the
There are three save areas that may be helpful in debugging
called by an
the
ule was called by a branch and link, the general registers are saved in the
area called
in the
The DMKFRE save area (FREESA
and
1.
placement
ment
backwards again.
2.
(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.
Introduction to Debugging