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, ...) {\
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__ , ## __VA_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, ...) {\
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__ , ## __VA_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, ...) \
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__ , ## __VA_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, ...) \
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__ , ## __VA_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, ...) \
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__ , ## __VA_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, ...) \
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__ , ## __VA_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, ...)
265 # define DBG_VERBOUS(dbg_logger, format, ...)
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
struct GWEN_MEMORY_DEBUG_OBJECT GWEN_MEMORY_DEBUG_OBJECT
GWENHYWFAR_API uint32_t GWEN_Debug_Snprintf(char *buffer, uint32_t size, const char *fmt,...)
GWENHYWFAR_API void GWEN_MemoryDebug_DumpObject(const char *name, uint32_t mode)
#define DBG_VERBOUS(dbg_logger, format,...)
#define DBG_INFO(dbg_logger, format,...)
GWENHYWFAR_API void GWEN_MemoryDebug_CleanUp(void)
#define DBG_NOTICE(dbg_logger, format,...)
GWENHYWFAR_API void GWEN_MemoryDebug_Decrement(const char *name, const char *wFile, int wLine)
#define DBG_ERROR(dbg_logger, format,...)
GWENHYWFAR_API void GWEN_MemoryDebug_Dump(uint32_t mode)
GWENHYWFAR_API long int GWEN_MemoryDebug_GetObjectCount(const char *name)
#define DBG_WARN(dbg_logger, format,...)
#define DBG_DEBUG(dbg_logger, format,...)
GWENHYWFAR_API void GWEN_MemoryDebug_Increment(const char *name, const char *wFile, int wLine, int attach)