Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix handling of the backtrace log formatters %b and %B.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Sun, 6 Nov 2011 10:54:58 +0000 (11:54 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Sun, 6 Nov 2011 10:54:58 +0000 (11:54 +0100)
The first backtrace entry (_xbt_log_event_log) is not displayed.

src/xbt/xbt_log_layout_format.c

index 444d455..d09a2fe 100644 (file)
@@ -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"
@@ -157,15 +158,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);