Library ABEND Codes
This appendix lists all ABENDs issued by the C run-time routines.
Most of the ABENDs described here result from user errors.
Storage ABENDs (messages 1200 - 1203 and
1205 - 1209) are generally caused by buffer overflows or overlays.
The application can be tested with the =storage
run-time
option to get a storage corruption report. Refer to the
SAS/C Debugger User's Guide and Reference, Third Edition
, for a detailed
explanation of the storage report and guidance on using the debugger to
isolate storage problems.
If you suspect a problem with the product, contact the SAS Software
Representative at your site.
The ABEND codes currently defined are:
issued if corruption of auto
storage control blocks is detected while
a DSA is being freed.
issued if corruption of auto
storage control blocks is detected during
allocation of a new DSA.
issued if, during termination of a program run with the =minimal
run-time option, it is discovered that the program has stored past the end of
the automatic storage stack.
issued if corruption of auto
storage control blocks is detected while
freeing all automatic storage at the end of program execution.
issued if the target of a longjmp
cannot be found. This may be caused
by corruption of the target jmp_buf
or by attempting to jump to a
routine that is no longer active.
issued if corruption of heap storage control blocks is detected during
execution of calloc/malloc
.
issued if corruption of heap storage control blocks is detected when
calloc/malloc
attempts to reuse a free portion of the heap.
issued if corruption of heap storage control blocks is detected by free
during the release of a tract of heap storage.
issued if the pointer to a block to be freed is found to be invalid by
free
. This may be caused by an overlay of storage near the block or
by passing a pointer to an area not directly allocated by calloc/malloc
.
issued if corruption of heap storage control blocks is detected during
program termination.
issued when the SIGABRT
signal is raised and default handling is in effect.
SIGABRT
can be raised by a call to abort
or by using raise
or
siggen
.
issued if the argument to unloadm
does not address a function in a
module previously loaded by loadm
.
issued if required transient run-time functions cannot be loaded. Under
MVS, the transient library must have been installed into the system link list or
be defined as part of STEPLIB or CTRANS. Under CMS, the transient library
must be present on an ACCESSed disk, in nucleus extensions, or in a segment.
Under the OpenEdition shell, the transient library must be installed into the
system linklist or be defined to the library using the STEPLIB
or
the ddn_CTRANS
environment variables.
For CICS applications, verify that CICS library support
customization has been accomplished. Refer to the
SAS/C Installation Guide
for details on installing SAS/C CICS functions.
issued if a subordinate C load module is abused by calling it directly (for
example, via EXEC PGM=) as if it were a main program.
issued if more than one recursive error occurs during diagnostic message
processing. This is probably a run-time library error; the most likely cause
is a malformed diagnostic message text.
issued under CMS if an error occurs while trying to delete the storage
occupied by a dynamically loaded module during a call to unloadm
. The
most likely cause is a storage overlay.
issued under CMS if an invalid library control block is encountered during a
call to unloadm
. This is probably caused by a storage overlay.
issued under CMS if an invalid library control block is encountered during a
call to loadm
. This is probably caused by a storage overlay.
issued under CMS if an error occurs while trying to delete a buffer during
dynamic loading. The most likely cause is a storage overlay.
issued if the interface between the debugger and the library detects an error
in its own processing or in the debugger. This can occur if the program
overlays debugger data areas.
issued if the abort
debugger command is executed. It also can happen
if multiple attention interrupts occur and the debugger is unable to respond
normally due to a program loop or system slowdown.
issued under CMS if an error is detected by CP while loading a library segment.
It is probably an indication of a CP system error.
issued if the library framework manager detects an error in its use. (The
framework manager is a library component used as a subroutine by the
debugger, interlanguage communication applications, and the CMS REXX function
package and SUBCOM support.) This is most likely a library error, but it can
be caused by overlay of library control blocks.
used under TSO to indicate a system problem in the TSO SUBCOM interface.
This is most likely a library or TSO error. Under CMS, this code is used to
indicate that the nucleus extension used to manage sharing of the C run-time
library has been dropped by the user, which is not permitted.
issued when longjmp
or exit
attempts to terminate a non-C
routine. This can occur when the indep
option is used to mix the C
language with another language or when the CMS REXX function package support
is used.
issued when there is no handler for an asynchronous signal, such as
SIGALRM
,
for which the default action is termination. The default handling is to
terminate the program.
issued if the Full-Screen Support Library detects an internal error. This may
be caused by an overlay of FSSL control blocks.
issued when a library error occurs terminating a coprocess.
issued if there is not enough storage available to extend the internal queue
of IUCV or socket communication messages. The probable cause is that the
number of incoming interrupts is greater than the program can handle.
This is a CICS-only ABEND code that is issued when there is not enough storage
available for an unconditional GETMAIN.
issued when a POSIX function cannot be executed because OpenEdition is not
installed or active, but the function does not have any defined error conditions.
No TWA defined for a CICS Indep Application.
issued if an internal error ocurred in the interlanguage communication
support routines. This is most likely a library error, but could be caused
by an overlay of library control blocks.
Please record any preceding messages and the value in register 15 at the time of ABEND, if possible,
before calling SAS Institute's Technical Support Department.
issued if a call is made from a C program to a routine written in another
high-level language or from a program in another high-level language to a C
function, but the framework for the called language has not been created.
issued for an interlanguage communication feature usage error. The error is
explained by a preceding message.
This is a CICS-only ABEND code that is issued when an unexpected internal error is
encountered during abnormal termination processing.
issued if an unexpected program check occurs during library ABEND analysis.
The analysis routine is careful not to depend on the contents of run-time
control blocks, so an occurrence of this ABEND probably indicates an
oversight in the coding of the analysis routine as well as a storage overlay.

Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.