tus of the system, you can use its options knowing that routines and data can­
not be overlaid unless you specifically request it. Likewise, you can use the CP
commands in debugging knowing that you cannot inadvertently overlay storage
because the CP and CMS storage areas are completely separate.
Reason for the Abend: First determine the reason CMS abnormally terminated.
There are four types of CMS abnormal terminations:
1. Program Exception
2.
Control is given to the DMSITP routine whenever a hardware program
exception occurs. If a routine other than a SPIE exit routine is in control,
DMSITP issues the message
DMSITP141T xxxxxxxx EXCEPTION OCCURRED AT xxxxxx IN ROUTINE xxxxxxxx
and invokes DMSABN (the abend routine). The abend code is OCx, where
x is the program exception number (0 through F). The possible program­
ming exceptions are:
Code Meaning 0 Imprecise
1 Operation 2 Privileged operation
3 Execute
4 Protection
5 Addressing
6 Specification
7 Decimal data
8 Fixed-point overflow
9 Fixed-point divide
A Decimal overflow
B Decimal divide
C Exponent overflow
D Exponent underflow
E Significance
F Floating-point divide
ABEND Macro
Control is given to the DMSSAB routine whenever a user routine executes
the ABEND macro. The abend code specified in the ABEND macro
appears in the abnormal termination message DMSABN148T.
3. Halt Execution command (HX)
Whenever the virtual machine operator signals attention and types HX,
CMS terminates and types "CMS". 4. System Abend
Introduction to Debugging 477
478 VM/SP System Programmer's Guide
A CMS system routine can abnormally terminate by issuing the DMSABN
macro. The first three hexadecimal digits of the system abend code appear
in the CMS abend message, DMSABN148T. The format of the DMSA.BN
macro is:
[label] DMSABN code
[ , ]
(reg)
Where:
label
is any valid Assembler language label.
code
is the abnormal termination code (0 through FFF) that appears in
the DMSABN148T system termination message.
(reg)
is the register containing the abnormal termination code.
TYPCALL= [SVC ]
BALR
specifies how control is passed to the abnormal termination routine,
DMSABN. Routines that do not reside in the nucleus should use
TYPCALL=SVC to generate CMS SVC 203 linkage.
Nucleus-resident routines should specify TYPCALL=BALR so
that a direct branch to DMSABN is generated.
If a CMS SVC handler abnormally terminates, that routine can set an abend
flag and store an abend code in NUCON (the CMS nucleus constant area).
After the SVC handler has finished processing, the abend condition is recog­
nized. The DMSABN abend routine types the abend message, DMSABN148T,
with the abend code stored in NUCON. What to do when eMS Abrnorally Terminates: After an abend, two courses of
action are available in CMS. In addition, by signalling attention, you can enter
the CP command mode and use CP's debugging facilities.
Two courses of action available in CMS are:
1. Issue the DEBUG command and enter the debug environment. After using
all the DEBUG sub commands that you wish, exit from the debug environ­
ment. Then, either issue the RETURN command to return to DMSABN so
that abend recovery will occur, or issue the GO command to resume proc­
essing at the point the abend occurred.
2. Issue a CMS command other than DEBUG, and the abend routine,
DMSABN, performs its abend recovery and then passes control to the
DMSINT routine to process the command just entered.
The abend recovery function performs the following functions, in sequence:
1. Clears the console input buffer and program stack.
Previous Page Next Page