From: Michael Beck Date: Mon, 14 Feb 2005 15:51:54 +0000 (+0000) Subject: Added support for libcores debug interface X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=3b104a9954f295229df0c1320f85849abeb8f941;p=libfirm Added support for libcores debug interface [r5120] --- diff --git a/ir/common/debug.c b/ir/common/debug.c index 6dd5d6dad..12c3467c4 100644 --- a/ir/common/debug.c +++ b/ir/common/debug.c @@ -18,6 +18,28 @@ #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 */ diff --git a/ir/common/debug.h b/ir/common/debug.h index b63a2619f..a3e2a8f7b 100644 --- a/ir/common/debug.h +++ b/ir/common/debug.h @@ -7,17 +7,35 @@ #ifndef _FIRM_DEBUG_H #define _FIRM_DEBUG_H +#include "firm_config.h" + +#ifdef WITH_LIBCORE + +#include + +/* 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 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 */