Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
debugtrace.c
Go to the documentation of this file.00001 #define _DEBUGTRACE_MAIN_
00002 #include <stdio.h>
00003 #include <stdlib.h>
00004 #include "mcw_malloc.h"
00005 #include "debugtrace.h"
00006
00007
00008
00009 static void output_message( char *prefix , char *fmt , va_list vararg_ptr )
00010 {
00011 char *ifmt , *msg ; int ll ;
00012
00013 if( fmt == NULL || *fmt == '\0' ) return ;
00014 if( prefix == NULL || *prefix == '\0' ){
00015 ifmt = fmt ;
00016 } else {
00017 ifmt = malloc( strlen(prefix)+strlen(fmt)+4 ) ;
00018 strcpy(ifmt,prefix) ;
00019 strcat(ifmt,fmt) ;
00020 }
00021 ll = strlen(ifmt) ; if( ll < 1024 ) ll = 1024 ;
00022 msg = malloc(sizeof(char)*16*ll) ; msg[0] = '\0' ;
00023 vsprintf(msg,ifmt,vararg_ptr) ; ll = strlen(msg) ;
00024 if( msg[ll-1] != '\n' ){ msg[ll] = '\n' ; msg[ll+1] = '\0' ; }
00025 fputs(msg,stderr) ;
00026 if( ifmt != fmt ) free(ifmt) ;
00027 return ;
00028 }
00029
00030
00031
00032 void INFO_message( char *fmt , ... )
00033 {
00034 va_list vararg_ptr ;
00035 va_start( vararg_ptr , fmt ) ;
00036 output_message( "++ " , fmt , vararg_ptr ) ;
00037 va_end( vararg_ptr ) ;
00038 return ;
00039 }
00040
00041
00042
00043 void ININFO_message( char *fmt , ... )
00044 {
00045 va_list vararg_ptr ;
00046 va_start( vararg_ptr , fmt ) ;
00047 output_message( " + " , fmt , vararg_ptr ) ;
00048 va_end( vararg_ptr ) ;
00049 return ;
00050 }
00051
00052
00053
00054 void WARNING_message( char *fmt , ... )
00055 {
00056 va_list vararg_ptr ;
00057 va_start( vararg_ptr , fmt ) ;
00058 output_message( "++ WARNING: " , fmt , vararg_ptr ) ;
00059 va_end( vararg_ptr ) ;
00060 return ;
00061 }
00062
00063
00064
00065 void ERROR_message( char *fmt , ... )
00066 {
00067 va_list vararg_ptr ;
00068 va_start( vararg_ptr , fmt ) ;
00069 output_message( "** ERROR: " , fmt , vararg_ptr ) ;
00070 va_end( vararg_ptr ) ;
00071 return ;
00072 }
00073
00074
00075
00076 void ERROR_exit( char *fmt , ... )
00077 {
00078 va_list vararg_ptr ;
00079 va_start( vararg_ptr , fmt ) ;
00080 output_message( "** FATAL ERROR: " , fmt , vararg_ptr ) ;
00081 va_end( vararg_ptr ) ;
00082 exit(1) ;
00083 }