gresolv: Make debug func print more useful information
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 18 Oct 2012 11:35:15 +0000 (14:35 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 19 Oct 2012 07:26:01 +0000 (10:26 +0300)
The file and function names are printed in debug prints.

gweb/gresolv.c

index 8ff8619..88e2c02 100644 (file)
@@ -115,18 +115,26 @@ struct _GResolv {
        gpointer debug_data;
 };
 
-static inline void debug(GResolv *resolv, const char *format, ...)
+#define debug(resolv, format, arg...)                          \
+       _debug(resolv, __FILE__, __func__, format, ## arg)
+
+static void _debug(GResolv *resolv, const char *file, const char *caller,
+                                               const char *format, ...)
 {
        char str[256];
        va_list ap;
+       int len;
 
        if (resolv->debug_func == NULL)
                return;
 
        va_start(ap, format);
 
-       if (vsnprintf(str, sizeof(str), format, ap) > 0)
-               resolv->debug_func(str, resolv->debug_data);
+       if ((len = snprintf(str, sizeof(str), "%s:%s() resolv %p ",
+                                               file, caller, resolv)) > 0) {
+               if (vsnprintf(str + len, sizeof(str) - len, format, ap) > 0)
+                       resolv->debug_func(str, resolv->debug_data);
+       }
 
        va_end(ap);
 }