X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3b9ebb3e5e5d04d3c6df84a1d1b2e8b34a7cbd23..00255adf47970918999b2b4495ce8a69b036e68a:/src/xbt/xbt_log_layout_format.c diff --git a/src/xbt/xbt_log_layout_format.c b/src/xbt/xbt_log_layout_format.c index 444d45513c..9fe811b881 100644 --- a/src/xbt/xbt_log_layout_format.c +++ b/src/xbt/xbt_log_layout_format.c @@ -7,6 +7,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "portable.h" /* execinfo when available */ +#include "xbt/ex_interface.h" #include "xbt/sysdep.h" #include "xbt/strbuff.h" #include "xbt/log_private.h" @@ -63,7 +64,11 @@ static double format_begin_of_time = -1; check_overflow(len); \ } else (void)0 -#define show_string(data) show_it(data, "s") +#define show_string(data) \ + if (1) { \ + const char *show_string_data = (data); \ + show_it(show_string_data ? show_string_data : "(null)", "s"); \ + } else (void)0 #define show_int(data) show_it(data, "d") #define show_double(data) show_it(data, "f") @@ -157,15 +162,16 @@ static int xbt_log_layout_format_doit(xbt_log_layout_t l, e.bt_strings = NULL; e.msg = NULL; e.remote = 0; - xbt_backtrace_current(&e); + xbt_ex_setup_backtrace(&e); if (*q == 'B') { - show_string(e.bt_strings[2] + 8); + show_string(e.bt_strings[1] + 8); } else { xbt_strbuff_t buff = xbt_strbuff_new(); int i; + xbt_strbuff_append(buff, e.bt_strings[1] + 8); for (i = 2; i < e.used; i++) { - xbt_strbuff_append(buff, e.bt_strings[i] + 8); xbt_strbuff_append(buff, "\n"); + xbt_strbuff_append(buff, e.bt_strings[i] + 8); } show_string(buff->data); xbt_strbuff_free(buff);