case '\0':
fprintf(stderr, "Layout format (%s) ending with %%\n", (char *)l->data);
xbt_abort();
+ break;
case '%':
*p = '%';
check_overflow(1);
case 'M': /* method (ie, function) name; LOG4J compliant */
show_string(ev->functionName);
break;
- case 'b': /* backtrace; called %throwable in LOG4J */
- case 'B': /* short backtrace; called %throwable{short} in LOG4J */
-// TODO, backtrace
-#if 0 && HAVE_BACKTRACE && HAVE_EXECINFO_H && HAVE_POPEN && defined(ADDR2LINE)
- {
- xbt_ex_t e("");
-
- e.used = backtrace((void **) e.bt, XBT_BACKTRACE_SIZE);
- e.bt_strings = NULL;
- xbt_ex_setup_backtrace(&e);
- if (*q == 'B') {
- 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, "\n");
- xbt_strbuff_append(buff, e.bt_strings[i] + 8);
- }
- show_string(buff->data);
- xbt_strbuff_free(buff);
- }
- }
-#else
- show_string("(no backtrace on this arch)");
-#endif
- break;
case 'd': /* date; LOG4J compliant */
show_double(surf_get_clock());
break;