Added support for libcores debug interface
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Mon, 14 Feb 2005 15:51:54 +0000 (15:51 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Mon, 14 Feb 2005 15:51:54 +0000 (15:51 +0000)
[r5120]

ir/common/debug.c
ir/common/debug.h

index 6dd5d6d..12c3467 100644 (file)
 #include "obst.h"
 #include "set.h"
 
+#ifdef WITH_LIBCORE
+
+#include "irargs_t.h"
+
+static void firm_dbg_default_printer(struct obstack *obst, const char *fmt, va_list args)
+{
+  static arg_env_t *env = NULL;
+
+  if(!env)
+    env = firm_get_arg_env();
+
+  lc_evoprintf(env, obst, fmt, args);
+
+}
+
+firm_dbg_module_t *firm_dbg_register(const char *name)
+{
+  return dbg_register_with_printer(name, firm_dbg_default_printer);
+}
+
+#else
+
 static struct obstack dbg_obst;
 static set *module_set;
 
@@ -109,3 +131,6 @@ void _firm_dbg_print_msg(const char *filename, int line, const char *func, void
                obstack_free(&dbg_obst, mi);
        }
 }
+
+
+#endif /* WITH_LIBCORE */
index b63a261..a3e2a8f 100644 (file)
@@ -7,17 +7,35 @@
 #ifndef _FIRM_DEBUG_H
 #define _FIRM_DEBUG_H
 
+#include "firm_config.h"
+
+#ifdef WITH_LIBCORE
+
+#include <libcore/debug.h>
+
+/* use the newer debug implementation in libcore */
+typedef dbg_module_t firm_dbg_module_t;
+
+extern firm_dbg_module_t *firm_dbg_register(const char *name);
+
+#define firm_dbg_set_mask(module, mask) dbg_set_mask(module, mask)
+#define firm_dbg_get_mask(module)       dbg_get_mask(module)
+#define firm_dbg_set_file(module, file) dbg_set_file(module, file)
+
+#else
+/* use the builtin debug implementation */
+
 #include <stdio.h>
 
 enum firm_dbg_level_t {
-       LEVEL_DEFAULT = 0,              /**< Prints always. Use with DBG(). */
+       LEVEL_DEFAULT = 0, /**< Prints always. Use with DBG(). */
        LEVEL_1 = 1,
        LEVEL_2 = 2,
        LEVEL_3 = 4,
        LEVEL_4 = 8,
        LEVEL_5 = 16,
 
-       SET_LEVEL_1 = 1,                        /**< use with firm_dbg_set_mask(). */
+       SET_LEVEL_1 = 1,   /**< use with firm_dbg_set_mask(). */
        SET_LEVEL_2 = 3,
        SET_LEVEL_3 = 7,
        SET_LEVEL_4 = 15,
@@ -119,5 +137,6 @@ void firm_dbg_set_file(firm_dbg_module_t *module, FILE *file);
 #define DBG(args)
 #endif
 
+#endif /* WITH_LIBCORE */
 
-#endif
+#endif /* _FIRM_DEBUG_H */