1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS system libraries 4 * FILE: lib/sdk/crt/misc/amsg.c 5 * PURPOSE: Print runtime error messages 6 * PROGRAMER: Ariadne 7 * UPDATE HISTORY: 8 * 28/12/98: Created 9 */ 10 11 #include <precomp.h> 12 13 static char *__rt_err_msg[] = 14 { 15 "stack overflow", /* _RT_STACK */ 16 "null pointer assignment", /* _RT_NULLPTR */ 17 "floating point not loaded", /* _RT_FLOAT */ 18 "integer divide by 0", /* _RT_INTDIV */ 19 "not enough space for arguments", /* _RT_SPACEARG */ 20 "not enough space for environment", /* _RT_SPACEENV */ 21 "abnormal program termination", /* _RT_ABORT */ 22 "not enough space for thread data", /* _RT_THREAD */ 23 "unexpected multithread lock error", /* _RT_LOCK */ 24 "unexpected heap error", /* _RT_HEAP */ 25 "unable to open console device", /* _RT_OPENCON */ 26 "non-continuable exception", /* _RT_NONCONT */ 27 "invalid exception disposition", /* _RT_INVALDISP */ 28 "not enough space for _onexit/atexit table", /* _RT_ONEXIT */ 29 "pure virtual function call", /* _RT_PUREVIRT */ 30 "not enough space for stdio initialization", /* _RT_STDIOINIT */ 31 "not enough space for lowio initialization", /* _RT_LOWIOINIT */ 32 }; 33 34 35 /* 36 * @implemented 37 */ 38 typedef void (*aexit_t)(int); 39 aexit_t _aexit_rtn = _exit; 40 41 /* 42 * @implemented 43 */ 44 void _amsg_exit(int errnum) 45 { 46 if ((errnum >=0) && (errnum < sizeof(__rt_err_msg)/sizeof(__rt_err_msg[0]))) 47 fprintf(stderr, "runtime error - %s\n", __rt_err_msg[errnum]); 48 else 49 fprintf(stderr, "runtime error - %d\n", errnum); 50 _exit(-1); 51 } 52 53