41 #include <gwenhywfar/misc.h>
68 if (numOr || leadingZero || j==1) {
130 k=(num>>((j-1)*4))&0xf;
132 if (numOr || leadingZero || j==1) {
137 numbuf[i]=k+
'0'+7+32;
166 for (k=0; k<i; k++) {
186 const char *fmt, ...) {
191 va_start(arguments, fmt);
209 if ((*fmt)>=
'0' && (*fmt)<=
'9') {
214 while ((*fmt)>=
'0' && (*fmt)<=
'9') {
228 p=va_arg(arguments,
int);
247 p=va_arg(arguments,
unsigned int);
261 p=va_arg(arguments,
unsigned int);
274 p=va_arg(arguments,
const char*);
310 #ifdef NO_VARIADIC_MACROS
311 void DBG_ERROR(
const char *dbg_logger,
const char *format, ...) {
313 char dbg_buffer[256];
314 va_start(args, format);
315 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
316 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
321 void DBG_WARN(
const char *dbg_logger,
const char *format, ...) {
323 char dbg_buffer[256];
324 va_start(args, format);
325 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
326 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
331 void DBG_NOTICE(
const char *dbg_logger,
const char *format, ...) {
334 char dbg_buffer[256];
335 va_start(args, format);
336 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
337 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
343 void DBG_INFO(
const char *dbg_logger,
const char *format, ...) {
346 char dbg_buffer[256];
347 va_start(args, format);
348 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
349 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
355 void DBG_DEBUG(
const char *dbg_logger,
const char *format, ...) {
356 # ifndef DISABLE_DEBUGLOG
359 char dbg_buffer[256];
360 va_start(args, format);
361 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
362 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
369 void DBG_VERBOUS(
const char *dbg_logger,
const char *format, ...) {
370 # ifndef DISABLE_DEBUGLOG
373 char dbg_buffer[256];
374 va_start(args, format);
375 vsnprintf(dbg_buffer,
sizeof(dbg_buffer)-1, format, args);
376 dbg_buffer[
sizeof(dbg_buffer)-1] = 0;
391 GWEN_MEMORY_DEBUG_ENTRY*
395 GWEN_MEMORY_DEBUG_ENTRY *e;
400 e->file=strdup(wFile);
423 o->name=strdup(name);
431 GWEN_MEMORY_DEBUG_ENTRY *e;
435 GWEN_MEMORY_DEBUG_ENTRY *next;
454 if (strcasecmp(o->name, name)==0)
473 GWEN_MEMORY_DEBUG_ENTRY *e;
483 GWEN_MemoryDebugEntryTypeCreate,
490 GWEN_MemoryDebugEntryTypeCreate,
503 GWEN_MEMORY_DEBUG_ENTRY *e;
511 "Object to be freed not found (%s at %s:%d)",
533 DBG_ERROR(0,
"Object \"%s\" (count=%ld)",
536 GWEN_MEMORY_DEBUG_ENTRY *e;
543 fprintf(stderr,
" ");
545 case GWEN_MemoryDebugEntryTypeCreate:
548 case GWEN_MemoryDebugEntryTypeAttach:
551 case GWEN_MemoryDebugEntryTypeFree:
555 s=
"<unknown action>";
558 DBG_ERROR(0,
" %s at %s:%d", s, e->file, e->line);
600 DBG_ERROR(0,
"Gwenhywfar Memory Debugger Statistics:");
601 DBG_ERROR(0,
"====================================== begin\n");
607 DBG_ERROR(0,
"====================================== end\n");