X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fdebug%2Fdebugger.c;h=367972640c295e5b4d0a5974433927d5f2a5c820;hb=f5766f06d94098747aef5c0a0fb1ef75f2d8bb57;hp=cc9acde83d0cbe251e1c26b786c20d8518e58e62;hpb=9204c7c42869f515b65c48831959cc430831ac14;p=libfirm diff --git a/ir/debug/debugger.c b/ir/debug/debugger.c index cc9acde83..367972640 100644 --- a/ir/debug/debugger.c +++ b/ir/debug/debugger.c @@ -28,6 +28,8 @@ #include "config.h" #endif +#include "firm_config.h" + #ifdef DEBUG_libfirm #ifdef _WIN32 @@ -60,6 +62,7 @@ #include "entity_t.h" #include "irprintf.h" #include "irdump.h" +#include "iredges_t.h" #include "debug.h" #ifdef _WIN32 @@ -1297,14 +1300,41 @@ void firm_init_debugger(void) */ const char *gdb_node_helper(void *firm_object) { static char buf[1024]; - ir_snprintf(buf, sizeof(buf), "%+F\n", firm_object); + ir_snprintf(buf, sizeof(buf), "%+F", firm_object); + return buf; +} + +/** + * A gdb helper function to print tarvals. + */ +const char *gdb_tarval_helper(void *tv_object) { + static char buf[1024]; + ir_snprintf(buf, sizeof(buf), "%+T", tv_object); + return buf; +} + +const char *gdb_out_edge_helper(const ir_node *node) { + static char buf[4*1024]; + char *b = buf; + size_t l; + size_t len = sizeof(buf); + const ir_edge_t *edge; + foreach_out_edge(node, edge) { + ir_node *n = get_edge_src_irn(edge); + + ir_snprintf(b, len, "%+F ", n); + l = strlen(b); + len -= l; + b += l; + } + return buf; } #else /* some picky compiler do not allow empty files */ -static int _firm_only_that_you_can_compile_with_NDEBUG_defined; +static int __attribute__((unused)) _firm_only_that_you_can_compile_with_NDEBUG_defined; #endif /* NDEBUG */