LSCX Run-time Messages

Library Message Processing

The SAS/C run-time library generates messages for unusual conditions detected during program execution. Some of these conditions represent programmer errors, such as attempting to take the square root of a negative number, while others represent unusual conditions beyond the programmer's control, such as running out of memory or a system service failure.

The library does not diagnose every failure of every function because some failures are expected. Rather, it is the application's responsibility to detect these conditions and inform the user when necessary. For example, the library will not diagnose a failure to retrieve an environment variable that is not defined because the caller of getenv should be prepared for this possibility and usually will not consider it to be an error.

If the library produces diagnostics that are not desirable for your application, you can use

Message Types

Run-time library diagnostic messages have the form
   LSCXmessage-number **** severity **** ERRNO = error-number
   Generated in function-name called from line line-number of function-name, offset hex-value
   [C++/Extended] name: full-name
   message-text
   Interrupted while: context
where severity can be any of the following:
NOTE
describes a condition that permits program execution to continue but which is not communicated to the caller of the routine. The errno variable is usually not set.
WARNING
describes a condition that permits program execution to continue; however, the routine that detected the condition returns an error indication to its caller. When a library warning is issued, the errno variable is set and usually an error code is returned from the function that detected the condition. (Most library messages are warnings.)
ERROR
describes a condition that forces program termination, usually with an ABEND.

Run-time library messages are normally written to the stderr file, except for ABEND messages, which are written to the terminal, the JES2 job log or to an OS/390 SYSOUT file. (See message 064 for more information about ABEND messages in batch.) If stderr is not open or not usable, library messages will be sent to the terminal or to the JES2 job log in OS/390 batch.

Note: Messages numbered from 000-099 are issued under special circumstances and are not usually in the format described above; they never modify the errno variable. Some of these messages are also system dependent. Messages numbered between 500 and 999 often refer to system-specific conditions, and the same number may be used by different systems in different ways. When this occurs, the same message number will be listed several times, once for each system where it has a unique meaning.

For additional assistance with any diagnostic, call Technical Support at SAS Institute. In preparation for your call, read Technical Report C-114, A Guide for the SAS/C Compiler Consultant and have ready the required information.

LSCX Messages

Note: MM = Multiple messages.
000 001 002 003 004 005 006 007 008 009
010 011 012
(MM)
013 014 015 016 017 018 019
020 021 022 023
(MM)
024 025 026 027 028
(MM)
029
030     033 034 035       039
040 041 042 043 044 045
(MM)
046 047 048 049
050 051 052 053 054 055 056 057 058 059
(MM)
060 061 062 063 064 065 066 067 068 069
070 071 072 073 074 075 076      
                   
                098 099
100 101 102     105 106 107    
110 111     114       118 119
  121 122   124 125 126 127 128 129
130 131 132 133 134 135 136 137 138 139
140 141 142 143 144 145 146 147 148 149
150                  
160 161       165 166 167 168 169
170 171       175 176 177    
180 181 182 183 184 185 186      
                   
200 201 202 203 204 205 206 207    
 
250 251 252 253            
                   
270 271 272 273 274 275 276 277 278 279
280 281 282 283 284 285 286 287 288 289
                   
300 301 302 303 304   306 307   309
310 311 312 313 314 315 316 317 318 319
320 321 322 323 324 325 326 327 328 329
330 331   333 334 335 336 337 338 339
340 341 342 343 344 345 346 347 348 349
350 351 352 353 354 355 356 357 358 359
360 361 362 363 364 365 366 367 368 369
370 371 372 373   375 376 377 378 379
380 381 382 383 384 385 386 387 388 389
390 391 392 393 394 395 396 397 398  
400 401 402 403 404 405 406 407 408 409
410 411 412              
                   
430 431                
 
460 461 462 463            
470 471 472 473 474   476 477 478 479
480 481 482 483 484 485 486 487 488 489
490 491 492   494 495 496 497 498 499
500
(MM)
501
(MM)
502
(MM)
503
(MM)
504
(MM)
505 506
(MM)
507
(MM)
508 509
(MM)
510
(MM)
511 512
(MM)
513
(MM)
514
(MM)
515
(MM)
516 517 518 519
520 521 522 523 524
(MM)
525 526 527 528 529
530 531 532 533 534 535 536 537 538
(MM)
539
540 541 542 543
(MM)
544
(MM)
545
(MM)
546
(MM)
547 548 549
550 551 552 553 554 555 556 557    
560 561 562 563 564 565 566 567 568 569
570 571 572 573
(MM)
574 575 576 577 578  
580 581 582 583   585 586 587 588 589
590 591 592 593 594 595 596 597 598 599
600 601 602 603 604 605 606 607 608 609
610 611                
 
640       644 645 646 647 648 649
650 651 652 653 654 655 656 657 658  
660 661 662 663 664          
670
(MM)
671 672 673 674 675 676     679
680 681 682 683 684          
690 691 692 693 694 695 696 697 698 699
700 701 702   704 705     708 709
710 711 712 713 714 715 716 717 718 719
720 721 722 723
(MM)
724 725
(MM)
       
730                  
 
800
(MM)
801
(MM)
802 803 804 805 806
(MM)
807 808 809
810 811 812
(MM)
813 814 815 816      
820 821 822 823 824          
830                  
840 841 842 843 844 845 846 847 848 849
850 851 852              
860 861 862 863 864 865 866 867 868 869
870 871 872 873 874 875 876 877 878 879
880 881 882 883 884 885 886 887 889
890 891                
900 901 902 903 904 905 906 907 908 909
910 911 912 913 914 915 916 917 918 919
920 921 922 923 924 925 926 927 928 929
930 931 932 933 934 935 936 937 938 939
940 941 942 943 944 945 946 947 948 949
950 951 952 953 954 955 956 957 958 959
960 961   963 964 965 966 967    
                   
980 981 982 983 984          
990 991 992 993  


000

ERROR: Automatic storage overlaid by program.
ABEND code: 1200

Explanation

During return from a function, the library detected that stack storage for the returning function was inconsistent or corrupted. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the returning function for uninitialized pointers, out-of-bounds array references, and other similar errors.

001

ERROR: Automatic storage control blocks overlaid.
ABEND code: 1201

Explanation

During a function call, the library detected that stack data areas were inconsistent or corrupted. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the calling function for uninitialized pointers, out-of-bounds array references and other similar errors.

002

ERROR: Stack overflow detected.
ABEND code: 1202

Explanation

During program termination, the library discovered that the end of the stack had been overlaid. This error can occur only when a program runs with the =minimal run-time option. Note that stack overflow is not detected when it occurs but only at program termination. However, if stack overflow is detected, then all the program's results should be regarded as possibly incorrect.

Action

Run the program again without specifying =minimal, and use the =usage run-time option to obtain an accurate estimate of the amount of stack space required by the program. Then adjust the initial stack space requested accordingly, adding some extra space for error handling and other unusual situations.

003

ERROR: Automatic storage control blocks overlaid.
ABEND code: 1203

Explanation

During program termination, the library discovered that stack management data areas were inconsistent or corrupted. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length. Note that even though this error is detected during termination, it may have occurred much earlier, and all the program's results should be regarded as possibly incorrect.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

004

ERROR: Improper or outdated argument to longjmp.
ABEND code: 1204

Explanation

During a call to longjmp, the library was unable to locate the function to which control was to be returned. This may be caused by overlaying a jmp_buf. It may also be caused by calling longjmp for a jmp_buf set by a call to setjmp in a routine that has already returned to its caller.

Action

Correct the problem. If a jmp_buf has been overlaid, the debugger monitor command may be useful in locating the cause of the overlay.

005

ERROR: Free storage control blocks overlaid.
ABEND code: 1205

Explanation

During execution of the malloc function, the library detected that library free storage control blocks had been overlaid. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length. Note that the overlay may have occurred much earlier in the program's execution, and may have nothing to do with the code executing at the time of the ABEND.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

006

ERROR: Free storage control blocks overlaid.
ABEND code: 1206

Explanation

During execution of the malloc or free function, the library detected library free storage control blocks had been overlaid. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length. Note that the overlay may have occurred much earlier in the program's execution, and may have nothing to do with the code executing at the time of the ABEND.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

007

ERROR: Free storage control blocks overlaid.
ABEND code: 1207

Explanation

During execution of the free function, the library detected that library free storage control blocks had been overlaid. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length. Note that the overlay may have occurred much earlier in the program's execution, and may have nothing to do with the code executing at the

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

008

ERROR: Storage to be freed is unallocated or overlaid.
ABEND code: 1208

Explanation

The argument of a call to free did not appear to be the address of storage previously allocated by malloc. One possible explanation is that the 8-byte prefix that precedes each block of storage allocated by malloc has been overlaid. Note that the overlay may have occurred much earlier in the program's execution and may have nothing to do with the code executing at the time of the ABEND.

Action

If the storage to be freed appears to have been correctly allocated with malloc, run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

009

ERROR: Free storage control blocks overlaid.
ABEND code: 1209

Explanation

During program termination, it was discovered that free storage management data areas were inconsistent or corrupted. This is probably caused by the program storing data using an invalid pointer, a bad subscript, or an incorrect string length. Note that even though this error is detected during termination, it may have occurred much earlier, and all the program's results should be regarded as possibly incorrect.

Action

Run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

010

ERROR: Program terminated by call to abort.
ABEND code: 1210

Explanation

The program has called the abort function or raised the SIGABRT signal. This may occur as the result of a failed assertion when the assert macro is used.

Action

Determine the reason that abort was called, and correct the problem. Note that if this message occurs running the compiler or a SAS/C utility, it indicates a programming error in the compiler or utility and should be reported to SAS/C Technical Support.

011

ERROR: Argument to unloadm is not a loaded function address.
ABEND code: 1211

Explanation

The program called the unloadm function, but the argument did not appear to be a pointer to a function in a load module loaded by loadm. One possible cause of this message is an overlay of the function pointer.

Action

If the argument to unloadm appears to be a valid function pointer into a module loaded by loadm, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors. Use of the debugger monitor command may also be helpful in locating the overlay.

012

ERROR: Unable to load run-time I/O routines, execution cannot continue.
ERROR: Unable to locate transient library.
ERROR: Unable to locate diagnostic routines, execution cannot continue.
ABEND code: 1212

Explanation

These messages indicate that required transient library modules could not be loaded. The first message above is the most common case. This message occurs during program initialization if the library's I/O and error-handling routines could not be found. This most likely indicates a problem with JCL, TSO allocations or CMS disk accesses, such that the program is unable to access the transient library at all. The second message is produced when certain transient modules (for instance, signal handling) cannot be located after initialization is complete. This form of the message most likely indicates an error installing the transient library. The third form of the message occurs only when the Generalized Operating System interface (GOS) is in use.

Action

Confirm that the transient library is available. Contact your local SAS/C support to determine the proper procedures for access to the transient library at your site.

In OS/390 batch or TSO, the library startup code looks for the transient library modules in one of the following places:

  1. In the library allocated to the DDname CTRANS.
  2. In any allocated task library. (For instance, under ISPF, the DDname ISPLLIB will be searched.)
  3. In STEPLIB or JOBLIB.
  4. In the system linklist.
  5. In the OS/390 link pack area (LPA).
If the library has not been installed into linklist or LPA, any SAS/C job or session must have an appropriate DD statement defined as in items 1 through 3 above.

Under CMS, the library startup code looks for the transient library modules in one of the following places:

  1. In a shared segment created when the product was installed.
  2. In LSCRTL LOADLIB on an accessed minidisk.
If the library has not been installed into a segment or segments, you must access the library minidisk before running a SAS/C program.

Under UNIX System Services OS/390, when a program is invoked by the exec system call, the library startup code looks for the transient library modules in one of the following places:

  1. In the library named by the ddn_CTRANS environment variable.
  2. In the list of libraries defined by the STEPLIB environment variable.
  3. In the system linklist.
  4. In the OS/390 link pack area (LPA).
If the library has not been installed into linklist or LPA, any SAS/C program run under UNIX Systems Services will require definition of one of the environment variables listed above.

For a C program linked using a Generalized Operating System library, where the library looks for transient modules is not defined by SAS/C. In this case, consult the implementer of the GOS interface routines.


013

ERROR: Improper use of C subordinate load module.
ABEND code: 1213

Explanation

An attempt was made to run a SAS/C dynamically loadable module as an independent program. A SAS/C dynamically loadable module can only be used when loaded by another SAS/C program using the loadm function.

Action

Refer to the SAS/C Library Reference, Chapter 1, "Dynamic-Loading Functions."

014

ERROR: Recursive failures in run-time diagnostic routines.
ABEND code: 1214

Explanation

The SAS/C library diagnostic support suffered multiple errors while trying to write a diagnostic message. This is probably a SAS/C library error, though it could be caused by program overlays of library data areas.

Action

Contact SAS/C Technical Support.

015

ERROR: Load module management control blocks overlaid.
ABEND code: 1215

Explanation

The CMS unloadm function detected an error trying to delete the storage used by a dynamically loaded load module. This is probably caused by program overlay of library data areas.

Action

Inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

016

ERROR: Load module management control blocks overlaid.
ABEND code: 1216

Explanation

The CMS unloadm function discovered that library dynamic loading control blocks were inconsistent or corrupted. This is probably caused by program overlay of library data areas.

Action

Inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

017

ERROR: Load module management control blocks overlaid.
ABEND code: 1217

Explanation

The CMS loadm function discovered that library dynamic loading control blocks were inconsistent or corrupted. This is probably caused by program overlay of library data areas.

Action

Inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

018

ERROR: Runtime library error during dynamic loading.
ABEND code: 1218

Explanation

The CMS loadm function failed while trying to delete a buffer. This is probably a SAS/C library error, but it may also be caused by program overlay of library data areas.

Action

Contact SAS/C Technical Support. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

019

ERROR: Internal error in DEBUG facility.
ABEND code: 1219

Explanation

The interface between the SAS/C library and the debugger detected an error in its own processing or in the debugger. This can occur if the program overlays debugger data areas.

Action

Contact SAS/C Technical Support. Also, inspect the program for uninitialized pointers, out-of-bounds array references and other similar errors.

020

ERROR: Program aborted by DEBUG facility.
ABEND code: 1220

Explanation

The program was terminated due to use of the debugger abort command. Also, this ABEND is issued if the debugger is unable to respond to multiple attention interrupts and the user chooses to terminate the application.

021

ERROR: System error during segment loading.
ABEND code: 1221

Explanation

An error was detected by CP while loading a library segment. This may indicate a CP system error.

Action

Contact SAS/C Technical Support for further information.

022

ERROR: Internal error in run-time domain manager.
ABEND code: 1222

Explanation

The library framework manager detected an internal error or corrupted control blocks.

Action

Contact SAS/C Technical Support.

023

ERROR: System failure in TSO CLIST/Rexx interface.
ABEND code: 1223

Explanation

An unexpected error occurred in the OS/390 SAS/C SUBCOM interface.

Action

Contact SAS/C Technical Support.

023

ERROR: Required library nucleus extension dropped.
ABEND code: 1223

Explanation

A CMS nucleus extension used to manage sharing of the SAS/C run-time library has been dropped by the user.

Action

Don't issue NUCXDROP for nucleus extensions whose names begin with the characters L$C.

024

ERROR: Attempt to terminate non-C routine with longjmp.
ABEND code: 1224

Explanation

The program issued a call to longjmp or exit, but execution of the call would require termination of one or more non-SAS/C calling routines.

Action

For some applications, allowing non-C calling routines to be terminated by longjmp or exit is not a problem. For such applications, you can modify L$UPREP to suppress this ABEND, as described in Appendix 6, "Using the indep Option for Interlanguage Communication," in the SAS/C Compiler and Library User's Guide.

025

ERROR: Program terminated due to name signal.
ABEND code: 1225

Explanation

A signal occurred for which the default action is termination, and no signal handler was defined. These signals include SIGALRM, SIGIUCV and most of the UNIX Systems Services signals.

Action

If abnormal termination is not desired, modify the program to define a handler for the signal.

026

ERROR: Internal error in fullscreen support library.
ABEND code: 1226

Explanation

The FSSL library detected an internal error. This can occur if the application overlays FSSL data areas.

Action

Contact SAS/C Technical Support.

027

ERROR: Runtime library error in coprocess support.
ABEND code: 1227

Explanation

A library failure occurred terminating a coprocess.

Action

Contact SAS/C Technical Support.

028

ERROR: Unable to obtain memory for IUCV interrupt handling.
ABEND code: 1228

Explanation

The library was unable to allocate memory to extend the library's queue of incoming IUCV messages. This can occur if the program blocks IUCV interrupts or fails to respond to them in a timely fashion.

Action

Make sure the program has not blocked IUCV signals, and is running in an adequate virtual machine.

028

ERROR: Unable to obtain memory for TCP/IP interrupt handling.
ABEND code: 1228

Explanation

The library was unable to allocate memory for handling IUCV interrupts for the IBM TCP/IP product. This is probably a library internal error.

Action

Contact SAS/C Technical support.

029

ERROR: No storage available to satisfy an unconditional GETMAIN request.
ABEND code: 1229

Explanation

A request by a C program for more memory failed, and execution was unable to continue. This normally indicates that CICS storage was exhausted or almost exhausted.

Action

Consult with your CICS Systems Programming Staff.

030

ERROR: OpenEdition not available, execution unable to continue.
ABEND code: 1230

Explanation

The program invoked a function that requires the presence of UNIX Systems Services in the system, such as getpid, but UNIX Systems Services was not installed or not running. The POSIX definition of the function did not permit the function to fail.

Action

Do not use functions that require UNIX Systems Services on systems where UNIX Systems Services is not installed. If is normally running on your system, contact your Systems Programming Staff for assistance.

033

ERROR: Internal error in interlanguage communication.
ABEND code: 1233

Explanation

This message indicates an internal library error.

Action

Contact SAS/C Technical Support.

034

ERROR: Inter-language call failed - no framework created for C.
ABEND code: 1234

Explanation

An ILC call was attempted from a non-C environment but no valid C framework had been created.

Action

Call CFMWK before calling a C function from another language, and verify that the CFMWK call was successful. Refer to the SAS/C Compiler Interlanguage Communication Feature User's Guide for details on how to create a C framework.

035

ERROR: Fatal interlanguage communication usage error.
ABEND code: 1235

Explanation

A library U1235 ABEND was issued for an unrecoverable usage error. It should always be accompanied by another message describing the nature of the error.

Action

Refer to previous messages for the cause of this error.

039

ERROR: Unexpected internal error during abnormal termination.
ABEND code: 1239

Explanation

An unexpected internal error occurred in CICS ABEND handling.

Action

Contact SAS/C Technical Support.

040

ERROR: Unexpected error in ABEND analysis - analysis terminated.
ABEND code: 1240

Explanation

During ABEND analysis, an unexpected program check was encountered which made further recovery and analysis impossible. This message is produced, the analysis is terminated, and if possible a dump is taken. This error can be caused by program errors which cause library object code to be overlaid.

Action

Refer to previous messages as to the cause of the ABEND.

041

ERROR: Program terminated by operating system. ABEND code is code.

Explanation

The operating system or the SAS/C library forced abnormal termination of the program. The ABEND code may be either a system code or a user code.

Action

If the ABEND code is a user code in the range 1200 to 1240, (for instance U1235) then refer to the SAS/C Library Reference for more details.

For a system ABEND, refer to the appropriate operating-system-dependent listing of ABEND codes for details on the ABEND. (See MVS System Codes for OS/390 or VM System Messages and Codes for CMS.) User ABENDs not in the SAS/C range are generated by the SAS/C program using the abend function, by assembler subroutines, or by other products, such as FORTRAN, PL/I or IMS.

Two particularly common user ABEND codes are 240, which is a FORTRAN ABEND code, and 4000, which is a PL/I ABEND code. In general, the meaning of a user ABEND code depends on the application and the other products or interfaces it uses, and therefore you should consult with local expertise if you receive a user ABEND code you do not recognize.

Library messages 000 through 041 are often accompanied by one or more additional messages giving supplementary information about an ABEND. These messages are not numbered. The messages and their meanings are as follows:

C run-time storage has been overlaid by the program.
The ABEND analysis has found one or more library control blocks to be in an inconsistent or corrupted state. Running the program again with the =storage run-time option may produce information about the overlay.
Runtime library failure, library storage may have been overlaid.
The ABEND occurred while a critical library routine was executing. Often this means that library storage was overlaid before the failure. Running the program again with the =storage option may produce information about the overlay.
The ABEND occurred in another task or domain.
The ABEND occurred in non-C code not called directly from your program. For example, you would get this message if the debugger ABENDed while debugging your program, or if a CMS ABEND occurred while a REXX function package was loaded but inactive.
A non-C or system routine was running at the time of ABEND.
The ABEND occurred in non-C code called from C, usually in a system routine.
This ABEND could not be recovered due to environmental damage.
Corruption of library control blocks prevented the library from converting this ABEND into a C signal.
Traceback terminated - save areas overlaid.
Due to corruption of stack information, a complete C calling trace could not be produced. If you run the program again with the =storage option, you can probably get more information about the overlay.
Unable to determine location of failure.
ABEND analysis was unable to determine where the failure occurred. This may be due to overlay of control blocks. It may also be generated if the ABEND occurs during program termination after the C framework has been partially destroyed. After this message, the ABEND handler prints the ABEND PSW and registers, which may be useful in the absence of a traceback.

042

NOTE: C run-time storage usage statistics statistic-values

Explanation

This message was issued due to use of the =usage run-time option. The library produces a report on the amount of stack and heap used as well as the number of system allocate requests and frees. If the program uses coprocesses, a stack report is given for both the main coprocess, and for all coprocesses combined.

043

NOTE: Invalid run-time argument ignored: "=argument-name"

Explanation

An program argument beginning with an equals sign was specified. Arguments of this type are considered to be SAS/C run-time options; however, argument-name was not recognized as a valid option.

Action

Refer to the SAS/C Compiler and Library User's Guide, Chapter 8, "Run-time Argument Processing," for information on run-time arguments.

044

NOTE: Further warning message will be suppressed.

Explanation

The library stops generating warning messages after a maximum number of five have been printed if stderr is unavailable, in order to avoid flooding OS/390 consoles with messages. There is no message limit if stderr is available.

Action

If possible, correct any problems that prevent the use of stderr. For instance, in OS/390 batch, make sure a valid SYSTERM DD statement is defined. Alternately, consider use of the quiet function to suppress these messages.

045

ERROR: No memory available for ABEND analysis.

Explanation

During ABEND analysis under OS/390, the ABEND handler could not obtain the memory needed to continue. The ABEND analysis and further execution were terminated.

Action

Refer to previous messages to determine the cause of the ABEND or increase memory availability and rerun the program to obtain a traceback and other diagnostic information. Note that if, due to an error, a program loops consuming all available memory, it may not be possible to bypass this condition by increasing the region size.

045

NOTE: CP VMDUMP command issued.

Explanation

Under CMS, the SAS/C ABEND handler issued the CP VMDUMP command because the =abdump run-time option was specified.

046

NOTE: Undefined items in library option string ignored.

Explanation

When the C framework is created by the ILC routine CFMWK, or when the entry point to a program is specified as $MAINO, the caller provides an argument string containing any run-time options to be passed to the program. This diagnostic is produced if any part of this string cannot be recognized as a valid run-time option or redirection.

Action

Correct the calling program to specify a correct run-time options string. See SAS/C Interlanguage Communication for information on CFMWK. For more details on passing run-time arguments using $MAINO see the SAS/C Compiler and Library User's Guide, Chapter 10, "Communication with Assembler Programs."

047

WARNING: Run-time message texts not found. errno=ERRNO-value
WARNING: Run-time message texts not found, further information unavailable.
Errno value: see message

Explanation

A condition occurred requiring a library message. However, the library message texts could not be accessed.

Action

If the program is executing in the normal C environment make sure the transient library is available and was installed correctly. If the program is linked with a Generalized Operating System (GOS) library, consult your local GOS implementer for information on this condition.

Note that this message may be produced by an all-resident program if a library diagnostic is required, but the program defined the symbol NO_WARNING before including <resident.h>.


048

NOTE: Most recent C run-time modules not available.
Use version version-number or later to avoid problems.

Explanation

When the C run-time environment is first created a check is made to confirm that the transient run-time library modules are at least as recent as the resident libraries used at link time. If the resident library is more recent then the transient library, this message is produced as a warning that correct behavior cannot be assured.

The second line of the message indicates the minimum transient library level necessary to guarantee compatibility with the executing load module.

Action

Contact your local support for SAS/C for information on how to access the most current version of the SAS/C transient library. For more details on combining different release levels of the resident and transient libraries, see "Rules for Using Different Releases of the Compiler and Library" in Chapter 1 of the SAS/C Library Reference, Volume 1.

049

NOTE: Abbreviations must be unique.

Explanation

This message is accompanied by message 043. An abbreviation of a run-time option was specified, but the abbreviation did not contain enough characters to identify it uniquely. The option is ignored and execution continues.

Action

Refer to the SAS/C Compiler and Library User's Guide, Chapter 8, "Run-time Argument Processing" for a list of valid abbreviations.

050

ERROR: Execution terminated due to =QUIT run-time option.
ABEND code: various

Explanation

A library message was generated and the =quit run-time option was specified. The program is abnormally terminated, with a user ABEND code matching the number of the generated message. (For example, if message 502 was generated, then the ABEND code is user 502). This message is generated to explain the reason for the ABEND.

051

ERROR: ABEND code in language-name.

Explanation

This message is generated to identify the ABEND code and the language when an ABEND occurs in a language other than C. Some languages, such as FORTRAN, modify the ABEND code during their processing, and the ABEND code printed by C may be the modified rather than the original code. language-name may also be CDEBUG for an ABEND that occurs in the C debugger or CMS for an ABEND that occurs under CMS while a REXX function package is idle.

Action

Refer to previous messages as to the cause of the ABEND. If the ABEND is in the SAS/C debugger, contact Technical Support.

052

ERROR: language-name ABEND code reinstated as 0C6.

Explanation

This message may occur when an 0Cx ABEND occurs in a language that does not define a handler for this particular ABEND. The C framework manager assumes control and determines whether or not the ABEND should proceed.

In some cases, it is not possible for the framework manager to allow the ABEND to proceed without either changing the ABEND code or the perceived location of the ABEND. Because changing the location of the ABEND affects the accuracy of the error message, the framework manager instead changes the ABEND code. More exactly, it loads the registers at the time of ABEND and branches to an odd address within a byte of the original ABEND location. Thus, information such as the number of the line that failed should be correct.

Action

Refer to previous messages as to a possible cause of the ABEND. Any messages produced by the other language will probably also be useful.

053

ERROR: Inter-language call or return attempted during program termination.

Explanation

The framework for another language had begun to terminate and then attempted to call (or return to) C. This can occur only if an interlanguage call or return is attempted after the use of a language facility that allows program termination to be intercepted, such as a PL/I FINISH ON-unit.

Action

Correct the non-C code not to call C functions during termination.

054

ERROR: Internal error in C library inter-language communication routines.

Explanation

This is a SAS/C internal library error.

Action

Contact SAS/C Technical Support.

055

ERROR: Invalid inter-language call to C.

Explanation

This message is issued when a C function is called from another language but the C framework is already active. The most likely cause of this error is a non-C routine that was not declared with a keyword such as __cobol. In some cases, a misdeclared routine of this sort may execute successfully; however, if it calls another C function, this error results.

Action

Refer to the SAS/C Compiler Interlanguage Communication Feature User's Guide for restrictions on inter-language calls to C.

056

NOTE: SAS/C library release n.nnx (resident), release n.nnx (transient).

Explanation

This message indicates the versions of the resident and transient libraries for the executing program. This message is produced when the =version run-time option is used.

057

ERROR: REXX function package is not reentrant.
Functions cannot be loaded.

Explanation

A REXX function package has been compiled using the norent compiler option. REXX function packages must be compiled using the rent option.

Action

Recompile the function package using the rent option. For complete details on REXX function packages see the SAS/C Library Reference chapter "The REXX SAS/C Interface."

058

ERROR: REXX environment name is terminating. Command rejected.

Explanation

This message occurs in a TSO SUBCOM application. The C program has called execend to terminate SUBCOM processing, but while the library was attempting to terminate an active TEXX EXEC, a subcommand was addressed to the terminating program.

The REXX input line that caused this message fails and passes a return code of -10 back to REXX.

Action

Correct the application so that this situation does not arise.

059

NOTE: Rexx environment name is busy. Command rejected.

Explanation

This message occurs in a TSO SUBCOM application. It indicates that while the C program was processing a REXX command, another command was addressed to the same environment. This is likely to happen only if the user is running several REXX EXECs as independent subtasks, or if the C program calls the system function to invoke another EXEC.

The REXX input line that generates this message fails and passes a return code of -10 back to REXX.

Action

Correct the application so that this situation does not arise.

059

NOTE: SUBCOM environment is busy. Command rejected.

Explanation

A CMS SUBCOM application invoked another CMS processor. For instance, it used the system function to invoke an EXEC. The invoked processor then attempted to address the SUBCOM environment of the original program. Recursive invocation of the SUBCOM interface in this fashion is not permitted. A return code of -10 is passed back to the program that attempted the recursive invocation.

Action

Do not attempt to address a C SUBCOM environment recursively. This may require restricting the use of general-purpose EXECs from a SUBCOM application.

060

NOTE: Beginning storage corruption check.

Explanation

When the =storage run-time option was requested, this message indicates that the storage corruption report is being generated.

061

NOTE: Storage corruption report generated.

Explanation

When the =storage run-time option was requested, this message indicates the storage corruption report has been successfully generated.

062

NOTE: No storage corruption detected.

Explanation

When the =storage run-time option was requested, this message indicates that a storage check was performed without finding any storage overlays.

063

NOTE: Unable to produce storage corruption report.

Explanation

This message indicates that for some reason the =storage run-time option failed to produce a storage corruption report. Typically this message is preceded by other library messages describing the problem.

Action

Under OS/390, the most likely cause for this message is that the STGRPT DDname was not allocated.

064

NOTE: ABEND diagnostic messages directed to ddname name

Explanation

The library diagnostics associated with a program ABEND (including the program traceback) were directed to the DDname indicated, either SYSTERM or a SYSOUT file allocated by the library. This avoids increasing the load on the OS/390 system console for C programming errors.

065

ERROR: Diagnostic output ABEND: code. Messages redirected to job log.

Explanation

The library attempted to send diagnostic messages to a file, but an ABEND occurred while writing to the file. Use of the file is abandoned and the messages are written to the job log.

066

ERROR: Unable to allocate DD-name - DYNALLOC error code hex-value.

Explanation

An UNIX Systems Services application attempted to dynamically allocate a DDname needed by the library as specified by an environment variable but the allocation failed. The DYNALLOC error code is included in the message.

Action

Look up the error code in the IBM MVS/ESA Application Development Guide: Authorized Assembler Language Programs, and take appropriate action. If the error code indicates a problem with the file to be allocated (for instance, it does not exist), correct the value of the environment variable and rerun.

067

ERROR: Unable to reopen CTRANS after fork - child terminated.
ABEND code: 1212

Explanation

After a fork call, the child process was unable to reopen CTRANS to access the SAS/C transient library.

Action

Contact SAS/C Technical Support.

068

NOTE: Error detected in file: name

Explanation

An error in a run-time option or redirection was detected in the named file. The error itself is described in a previous message.

069

NOTE: Terminal/pipe not valid for argument redirection.

Explanation

An argument redirection request specified a file that was a terminal file or a pipe. These files are not supported for argument redirection.

Action

Correct the specification.

070

NOTE: Enter IC to interrupt program or a REXX immediate command.

Explanation

This message is produced if you hit the attention key while a SAS/C SUBCOM application is running a REXX EXEC. The message indicates that you can communicate to REXX by entering any REXX immediate command, or send an attention signal to the SAS/C debugger or library by entering IC.

Action

Enter a Rexx immediate command, or enter IC to signal the SAS/C application or debugger, or enter a null line to simply continue execution of the REXX EXEC.

071

NOTE: Recursive inclusion of argument file: name.

Explanation

An argument redirection file contains another argument redirection that (directly or indirectly) causes the file to be included again. The recursive specification is ignored.

Action

Correct the file to not include a recursive specification.

072

ERROR: This version of the transient library does not support OpenEdition.
ABEND code: SEC6

Explanation

A program called using UNIX Systems Services exec linkage determined that the accessible version of the SAS/C transient library did not support UNIX Systems Services. The program is aborted.

Action

Provide a CTRANS DD statement or use the ddn_CTRANS environment variable to define the location of a compatible version of the transient library. Contact your SAS/C Support Representative to determine the appropriate data set name.


073

NOTE: Library internal error, text for message message-number was truncated.

Explanation

This message indicates that an error occurred formatting the previous library message, and that some of the message text was lost. This condition should not occur and indicates a potential problem in the run-time library.

Action

Report the problem to SAS/C Technical Support.

074

NOTE: I/O support code not accessible. Diagnostic information may be lost.

Explanation

This message is produced if you run an all-resident application under the shell and the library needs to generate a diagnostic message, but is unable to send the message because HFS I/O support was not linked into the module. The original diagnostic message is sent to the MVS console as an alternative.

Action

Modify the application to define the macro RES_HFS_STDIO before including <resident.h>.

075

WARNING: Command line parameter truncated to 2000 bytes.

Explanation

With Release 7.00, the command line must be 2,000 characters or less if you are using MAIN as your entry point.

Action

It is not possible to increase the command line length beyond 2,000 bytes for the MAIN entry point. You will need to use either the $MAINC or the $MAINO entry point if you require a command line that is longer that 2,000 bytes.

076

Warning: This Function is not supported by your version of the Operating System.

Explanation

The operating system does not provide the support necessary for this function to perform properly.

Action

See the documentation for the specific function returning this message.

098

WARNING: VSAM PHYSICAL ERROR SYNADAF INFO:
Errno value: EDEVICE

Explanation

This message indicates a physical I/O error processing a VSAM data set, probably a hardware problem. The rest of the text of the message contains details that may be helpful in isolating the error. This message is sent to the Operator's console in MVS.

Action

Check for other indications of hardware problems. For instance, in MVS, look for IOS000I messages that may contain more information about the error.

099

ERROR: I/O-type ERROR (access-method) DIAGNOSTIC INFO, information
Errno value: EDEVICE

Explanation

This message is similar to message 098 except that it applies to BSAM rather than VSAM files. This may indicate either a hardware problem, or a program logic error. If the message is accompanied by an MVS IOS000I message, it probably indicates a hardware problem.

Action

If the message indicates WRNG.LEN.RECORD, the probable cause is incorrect DCB information, possibly caused by incorrect concatenation of DD statements. Another possible cause is a call to fseek or fsetpos with a corrupted or uninitialized seek address. Consult with your local system programming staff for help interpreting this message and determining possible causes.

100

WARNING: Memory unavailable for new allocation: number bytes required.
Errno value: ENOMEM

Explanation

The library attempted to allocate the number of bytes indicated. This may be caused by a direct call to malloc, or may represent a library internal storage request.

Action

Increase the region size or virtual machine size. If the amount of memory requested appears unreasonable, verify that the argument passed to malloc has been correctly initialized.

101

ERROR: Program does not contain a "main" function. Execution aborted.
ABEND code: 1210

Explanation

A C load module was linked with neither a main function nor a _dynamn function. This message is issued by a dummy main function contained within the library. This is usually a link-edit error that caused part of the program to be omitted or that specified the wrong entry point.

Action

Unless the compiler option indep is in use, every C program requires a main function. If indep is not in use, ensure that the main function is included when the program is linked. If indep is in use, ensure that the program entry point is defined as the first function to be executed, not as MAIN.

102

WARNING: Module name is too long or entirely blank: module-name.
Errno value: EARG

Explanation

A call to loadm or buildm specified a module name that was entirely blank or contained more than 8 characters.

Action

Correct the program to make sure a valid module name is specified.

105

WARNING: Input data does not match format string: format-string.
Errno value: ECONV

Explanation

During the execution of one of the scanf family of functions, an incompatibility was detected between the data and the format string. Up to eight characters of the format string are displayed in the message.

Action

Refer to the SAS/C Library Reference for more details on the function being invoked and valid format strings. The quiet function can be used to suppress the message.

106

WARNING: % found at end of function-name format string.
Errno value: EARG

Explanation

A trailing % was found in a format string. The % denotes the beginning of a format and cannot appear by itself.

Action

If an actual % character is desired in the output, specify two % characters (for instance, Interest rate %d%%). Refer to the SAS/C Library Reference for more details on the function being invoked and valid format strings.

107

WARNING: Invalid number base for strtol: base-value.
Errno value: EDOM

Explanation

The base specified in the invocation of strtol is invalid.

Action

Specify a valid base between 2 and 36.

110

NOTE: Arguments to function-name overlap (length=length). Results are unpredictable.
Errno value: unchanged

Explanation

The function indicated has been passed arguments that address overlapping areas. The results are unpredictable. Some of the functions that may cause this message to be generated are: memcpy, memcpyp, and memfil. This message may also be generated if the length passed to one of these functions is extremely large, perhaps due to an uninitialized variable.

Action

If it is valid for the data areas to overlap, consider using the memmove function. See the SAS/C Library Reference for information on memmove.

This message can be generated within the library during program startup if a SAS/C program is invoked with an invalid parameter list pointer in register 1. If the program issuing the message was invoked from another program (for instance, using the ATTACH macro), check the invoking program to be sure it has constructed a correct parameter list.


111

NOTE: Length of memset target too large: length. Results unpredictable.
Errno value: unchanged

Explanation

The program is running in AMODE 24, and a call to memset specified a length of more than 16 megabytes. The probable cause is an uninitialized argument to memset.

Action

Correct the program.

114

WARNING: error-type occurred converting "string" to floating point.
Errno value: ERANGE

Explanation

During an attempt to convert a string to a floating point number, an error occurred. The error value is either Underflow or Overflow.

Action

None. The data to be converted represented a number outside the hardware range for floating-point numbers.

118

WARNING: buildm unsuccessful. Module name name already defined.
Errno value: EUSAGE

Explanation

The module name specified to buildm is the name of a previously loaded or built module.

Action

Each module name should normally be unique. If reusing an existing module name is required, refer to the SAS/C Library Reference description of buildm for details.

119

WARNING: Transient module module-name could not be located.
Errno value: EFORBID

Explanation

An all-resident program required a transient load module, but the symbol ALLOW_TRANSIENT was not defined when it was compiled.

Action

This generally indicates that the program has attempted to use a library feature which was not specified at the time that the <resident.h> header file was included. This is permitted only if ALLOW_TRANSIENT is specified and the transient library is accessible. Refer to the SAS/C Compiler and Library User's Guide, Chapter 9, "All Resident C Programs," for details.

121

WARNING: Calendar time value outside the range of the system clock.
Errno value: EUSAGE

Explanation

The IBM 370 system clock has a year range of 1900-2041. If the time value passed to the mktime function falls outside of this range, the above message is generated and mktime returns a error code to its caller.

Action

Avoid the use of time values outside the valid range.

122

WARNING: Minimum field width of 0 ignored in function-name format.
Errno value: EUSAGE

Explanation

A field width of 0 was specified in the format for a scanf type function. This width is illegal and execution of scanf is terminated.

Action

Specify a field width other than 0.

124

ERROR: Assertion failed: assertion-text.
ABEND code: 1210

Explanation

An assertion was specified in the source program and the assertion was not met. The executing program is terminated (abort is called).

Action

If the assertion is incorrect, remove or correct it. If the assertion is correct, fix the program logic error which caused the assertion to fail.

125

WARNING: Invalid function-name format character 'format-code'.
Errno value: EARG

Explanation

An invalid format specification such as %q was passed to a printf or scanf type function.

Action

For more details on valid formats see the SAS/C Library Reference description of the specified function.

126

WARNING: hex-value is not a valid double-byte character.
Errno value: EARG

Explanation

The hex characters printed do not comprise a valid double-byte character.

Action

For more details see the SAS/C Library Reference, Chapter 11, "Multibyte Character Functions."

127

NOTE: Unmatched double-byte shift-out in function-name argument string.
Errno value: EARG

Explanation

A zero byte was encountered within a double-byte character sequence, so the sequence was terminated.

Action

For more details see Chapter 11, "Multibyte Character Functions," in SAS/C Library Reference, Volume 1.

128

WARNING: %format-code conversion exceeds maximum length of max-length characters.
Errno value: EARG

Explanation

A format item for a printf-like function specified a length larger than the limit for this function. The limit is 512 characters for functions other than sprintf and its variants (which have no limit). Note, this limit does not apply to %s and %V formats.

Action

Decrease the size of the conversion, or use sprintf or snprintf to format the data, followed by a function such as fputs to write the formatted output.

129

WARNING: Integer overflow converting "string" to long (base number).
Errno value: ERANGE

Explanation

During an attempt to convert the specified string to the specified base, the strtol function encountered an integer overflow. The strtol function returns LONG_MAX or LONG_MIN for this condition. stroul can also generate this message, in which case it returns ULONG_MAX.

Action

A possible solution is to use stroul (unsigned long) for the conversion. Refer to the SAS/C Library Reference description of strtol and strtoul for more information.

130

ERROR: Attempt to free an address not allocated by malloc.
ABEND code: 1208

Explanation

The argument of a call to free did not appear to be the address of storage previously allocated by malloc. One possible explanation of this condition is that the 8-byte prefix which precedes each block of storage allocated by malloc has been overlaid. Note that the overlay may have occurred much earlier in the program's execution and may have nothing to do with the code executing at the time of the ABEND.

Action

If the storage to be freed appears to have been correctly allocated with malloc, run the program again using the =storage run-time option, or run the program under the SAS/C debugger and use the storage debugger command to locate the overlaid data areas. Also, inspect the program for uninitialized pointers, out-of-bounds array references, and other similar errors.

131

WARNING: Invalid signal number: signal-number
Errno value: EARG

Explanation

A signal-related function was called specifying an undefined signal number.

Action

Ensure that the library passes valid signal names in calls to signal-handling functions. Integer constants should not be passed to signal routines, since different systems often use different numbers for the same signal. See Chapter 5, "Signal-Handling Functions" in SAS/C Library Reference, Volume 2, for information on valid signals.

132

WARNING: Signal signal-name cannot be ignored.
Errno value: EARG

Explanation

A request was made to ignore the indicated signal; however, certain signals, such as SIGABND, cannot be ignored.

Action

See "Signal-Handling Functions" in SAS/C Library Reference, Volume 2, for information on valid signals.

133

WARNING: Signal number already defined: signal-number.
Errno value: EARG | EUSAGE

Explanation

An attempt was made to define a user signal that is not in the valid range for user-defined signals or which has already been defined as a user signal.

Action

See "Signal-Handling Functions" in SAS/C Library Reference, Volume 2, for information on defining user signals.

134

NOTE: Handling of signal-name not permitted due to =option-name option.
Errno value: unchanged

Explanation

The named signal cannot be handled because a run-time option was used. The option =nohtsig inhibits handling of termination signals SIGABRT and SIGABND. The option =nohcsig inhibits handling of computational signals SIGFPE, SIGSEGV and SIGILL. The request to handle the signal is ignored.

Action

See the SAS/C Compiler and Library User's Guide for complete details on run-time library options and "Signal-Handling Functions" in SAS/C Library Reference, Volume 2 for general information on signal-handling.

135

ERROR: Return from signal-name handler not supported, execution terminated.
ABEND code: signal-dependent

Explanation

A handler attempted to return to the point of interruption, but this was not allowed for this signal. The program is abnormally terminated, using the ABEND code associated with the signal. (Signals for which return is forbidden include SIGABRT, SIGABND, SIGSEGV and SIGILL.)

Action

To recover from one of these signals, the handler must use the longjmp function to resume execution. See "Signal-Handling Functions" in SAS/C Library Reference, Volume 2 for general information on signal handling.

136

ERROR: Argument to unloadm is not a valid dynamically loaded function address.
ABEND code: 1211

Explanation

The program called the unloadm function, but the argument did not appear to be a pointer to a function in a load module loaded by loadm. Overlay of the unloadm argument can cause this message.

Action

If the argument to unloadm appears to be a valid function pointer to a module loaded by loadm, inspect the program for uninitialized pointers, out-of-bounds array references, and other similar errors. Use of the debugger monitor command may also be helpful in locating the overlay.

137

WARNING: Attempt to allocate from uninitialized or corrupted storage pool.
Errno value: EUSAGE

Explanation

The control information in a pool_t object is incorrect. Either the object has not been initialized by a call to the pool function or it has been overlaid.

Action

Check that the pool_t object was correctly initialized. If so, use the debugger monitor command to determine where the object was overlaid.

138

WARNING: Insufficient memory to load module module-name.
Errno value: ENOMEM

Explanation

An attempt to dynamically load the named module failed because there was not enough memory for the library to allocate its load module management control blocks.

Action

Increase the amount of memory available for the execution and make sure that the program is freeing memory which it no longer requires.

139

WARNING: buildm failed due to insufficient memory.
Errno value: ENOMEM

Explanation

The buildm routine attempted to build an entry point address as requested. During the attempt, buildm could not obtain enough memory to complete its processing.

Action

Increase the amount of memory available for the execution and make sure that the program is freeing memory which it no longer requires.

140

WARNING: Argument to coproc is unrecognized: argument-value.
Errno value: EARG

Explanation

The coproc function accepts only the symbolic arguments MAIN, SELF, or CALLER.

Action

See the SAS/C Library Reference, Chapter 9, "Coprocessing Functions," for information on coproc.

141

WARNING: Argument to function-name does not identify an active coprocess.
Errno value: EUSAGE

Explanation

An argument to the specified function is not the id of any active coprocess. Most likely, the coprocess id is uninitialized or corrupted.

Action

Check to be sure the coprocess id was correctly initialized. If so, use the debugger monitor command to determine where the id was overlaid.

142

WARNING: coreturn not permitted from main coprocess.
Errno value: EUSAGE

Explanation

The main coprocess cannot call coreturn because there is no calling coprocess to return to.

Action

Modify the program so that the main coprocess does not call coreturn. For complete details on coprocesses, see the SAS/C Library Reference, Chapter 9, "Coprocessing Functions."

143

WARNING: Recursive cocall not permitted.
Errno value: EUSAGE

Explanation

A coprocess attempted to cocall itself either directly or via one or more additional coprocesses. This behavior is not supported. The erroneous call to cocall returned and execution continued.

Action

Modify the program's logic to avoid recursive cocalls. For complete details on coprocesses, see the SAS/C Library Reference, Chapter 9, "Coprocessing Functions."

144

WARNING: Maximum number of coprocesses already active.
Errno value: ELIMIT

Explanation

A request was made to create another coprocess, but there were already 65535 coprocesses active.

Action

Reorganize the program so that this limit is not reached. (Note that in most cases a program which attempts to create the maximum number of coprocesses will run out of memory first.) For com