33 #include <gwenhywfar/gwenhywfarapi.h> 34 #include <gwenhywfar/logger.h> 35 #include <gwenhywfar/error.h> 36 #include <gwenhywfar/types.h> 42 #if (defined HAVE_FUNC && (DEBUGMODE>10)) 43 # define DBG_ENTER fprintf(stderr,"Enter \""__func__"\" \n") 44 # define DBG_LEAVE fprintf(stderr,"Leave \""__func__"\" \n") 50 #define GWEN_MEMORY_DEBUG_MODE_ALL 0 51 #define GWEN_MEMORY_DEBUG_MODE_OPEN 1 52 #define GWEN_MEMORY_DEBUG_MODE_DETAILED 2 53 #define GWEN_MEMORY_DEBUG_MODE_SHORT 3 81 #ifdef GWEN_MEMORY_DEBUG 82 # define DBG_MEM_INC(o, attach)\ 83 GWEN_MemoryDebug_Increment(o, __FILE__, __LINE__, attach) 84 # define DBG_MEM_DEC(o)\ 85 GWEN_MemoryDebug_Decrement(o, __FILE__, __LINE__) 87 # define DBG_MEM_INC(o, attach) 88 # define DBG_MEM_DEC(o) 94 const char *
fmt, ...);
96 #ifndef NO_VARIADIC_MACROS 97 # define DBG_ERROR(dbg_logger, format, args...) {\ 98 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Error) {\ 99 char dbg_buffer[300]; \ 101 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 102 __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 103 dbg_buffer[sizeof(dbg_buffer)-1]=(char)0; \ 104 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Error, dbg_buffer);\ 110 void DBG_ERROR(
const char *logdomain,
const char *format, ...);
113 #define DBG_ERROR_ERR(dbg_logger, dbg_err) {\ 114 char dbg_buffer[300]; \ 115 char dbg_errbuff[256]; \ 117 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 118 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 119 __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) { \ 120 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 121 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Error, dbg_buffer);}; \ 124 #ifndef NO_VARIADIC_MACROS 125 # define DBG_WARN(dbg_logger, format, args...) {\ 126 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Warning) {\ 127 char dbg_buffer[300]; \ 129 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 130 __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 131 dbg_buffer[sizeof(dbg_buffer)-1]=(char)0; \ 132 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Warning, dbg_buffer);\ 138 void DBG_WARN(
const char *logdomain,
const char *format, ...);
141 #define DBG_WARN_ERR(dbg_logger, dbg_err) {\ 142 char dbg_buffer[300]; \ 143 char dbg_errbuff[256]; \ 144 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 145 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 146 __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) { \ 147 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 148 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Warning, dbg_buffer);}; \ 151 #ifndef NO_VARIADIC_MACROS 152 # define DBG_NOTICE(dbg_logger, format, args...) \ 153 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Notice) {\ 154 char dbg_buffer[300]; \ 156 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 157 __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 158 dbg_buffer[sizeof(dbg_buffer)-1]=(char)0; \ 159 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Notice, dbg_buffer);\ 164 void DBG_NOTICE(
const char *logdomain,
const char *format, ...);
167 #define DBG_NOTICE_ERR(dbg_logger, dbg_err) \ 168 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Notice) {\ 169 char dbg_buffer[300]; \ 170 char dbg_errbuff[256]; \ 172 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 173 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) {\ 174 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 175 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Notice, dbg_buffer);\ 180 #ifndef NO_VARIADIC_MACROS 181 # define DBG_INFO(dbg_logger, format, args...) \ 182 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Info) {\ 183 char dbg_buffer[300]; \ 185 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1,\ 186 __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 187 dbg_buffer[sizeof(dbg_buffer)-1]=(char)0; \ 188 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Info, dbg_buffer);\ 193 void DBG_INFO(
const char *logdomain,
const char *format, ...);
196 #define DBG_INFO_ERR(dbg_logger, dbg_err) \ 197 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Info) {\ 198 char dbg_buffer[300]; \ 199 char dbg_errbuff[256]; \ 201 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 202 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) { \ 203 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 204 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Info, dbg_buffer);\ 211 #ifndef DISABLE_DEBUGLOG 213 # ifndef NO_VARIADIC_MACROS 214 # define DBG_DEBUG(dbg_logger, format, args...) \ 215 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Debug) {\ 216 char dbg_buffer[300]; \ 218 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 219 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 220 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Debug, dbg_buffer);\ 224 # define DBG_VERBOUS(dbg_logger, format, args...) \ 225 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Verbous) {\ 226 char dbg_buffer[300]; \ 228 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: " format , __LINE__ , ## args)>0) { \ 229 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 230 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Verbous, dbg_buffer);\ 235 # define DBG_DEBUG_ERR(dbg_logger, dbg_err) \ 236 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Debug) {\ 237 char dbg_buffer[300]; \ 238 char dbg_errbuff[256]; \ 240 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 241 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) { \ 242 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 243 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Debug, dbg_buffer);\ 247 # define DBG_VERBOUS_ERR(dbg_logger, dbg_err) \ 248 if (GWEN_Logger_GetLevel(dbg_logger)>=GWEN_LoggerLevel_Verbous) {\ 249 char dbg_buffer[300]; \ 250 char dbg_errbuff[256]; \ 252 GWEN_Error_ToString(dbg_err,dbg_errbuff, sizeof(dbg_errbuff)); \ 253 if (snprintf(dbg_buffer, sizeof(dbg_buffer)-1, __FILE__":%5d: %s" , __LINE__ , dbg_errbuff)>0) {\ 254 dbg_buffer[sizeof(dbg_buffer)-1]=0; \ 255 GWEN_Logger_Log(dbg_logger, GWEN_LoggerLevel_Verbous, dbg_buffer);\ 263 # ifndef NO_VARIADIC_MACROS 264 # define DBG_DEBUG(dbg_logger, format, args...) 265 # define DBG_VERBOUS(dbg_logger, format, args...) 268 # define DBG_DEBUG_ERR(dbg_logger, dbg_err) 269 # define DBG_VERBOUS_ERR(dbg_logger, dbg_err) 273 #ifdef NO_VARIADIC_MACROS 275 void DBG_DEBUG(
const char *logdomain,
const char *format, ...);
277 void DBG_VERBOUS(
const char *logdomain,
const char *format, ...);
GWENHYWFAR_API const char * fmt
#define DBG_NOTICE(dbg_logger, format, args...)
#define DBG_VERBOUS(dbg_logger, format, args...)
GWENHYWFAR_API void GWEN_MemoryDebug_DumpObject(const char *name, uint32_t mode)
#define DBG_WARN(dbg_logger, format, args...)
struct GWEN_MEMORY_DEBUG_OBJECT GWEN_MEMORY_DEBUG_OBJECT
#define DBG_DEBUG(dbg_logger, format, args...)
GWENHYWFAR_API long int GWEN_MemoryDebug_GetObjectCount(const char *name)
GWENHYWFAR_API uint32_t GWEN_Debug_Snprintf(char *buffer, uint32_t size, const char *fmt,...)
GWENHYWFAR_API void GWEN_MemoryDebug_CleanUp(void)
#define DBG_ERROR(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
GWENHYWFAR_API void GWEN_MemoryDebug_Decrement(const char *name, const char *wFile, int wLine)
GWENHYWFAR_API void GWEN_MemoryDebug_Increment(const char *name, const char *wFile, int wLine, int attach)
GWENHYWFAR_API void GWEN_MemoryDebug_Dump(uint32_t mode)