void xbt_backtrace_init(void) { }
void xbt_backtrace_exit(void) { }
+void xbt_backtrace_current(xbt_ex_t * e) {
+ e->used = backtrace((void **) e->bt, XBT_BACKTRACE_SIZE);
+}
+
+
void xbt_ex_setup_backtrace(xbt_ex_t * e)
{
int i;
struct stat stat_buf;
char *binary_name = NULL;
- e->used = backtrace((void **) e->bt, XBT_BACKTRACE_SIZE);
+ xbt_assert0(e && e->used,"Backtrace not setup yet, cannot set it up for display");
+
backtrace_syms = backtrace_symbols(e->bt, e->used);
addrs = xbt_new(char *, e->used);
*/
char **backtrace_symbols(void *const *buffer, int size);
+void xbt_backtrace_current(xbt_ex_t * e) {
+ e->used = backtrace((void **) e->bt, XBT_BACKTRACE_SIZE);
+}
+
+
void xbt_ex_setup_backtrace(xbt_ex_t * e)
{
int i;
- char **backtrace_syms = backtrace_symbols(e->bt, e->used);
+ char **backtrace_syms;
- e->used = backtrace((void **) e->bt, XBT_BACKTRACE_SIZE);
+ xbt_assert0(e && e->used,"Backtrace not setup yet, cannot set it up for display");
+
+ backtrace_syms = backtrace_symbols(e->bt, e->used);
e->bt_strings = NULL;
/* parse the output and build a new backtrace */
e->bt_strings = xbt_new(char *, e->used);
/* Change raw libc symbols to file names and line numbers */
void xbt_ex_setup_backtrace(xbt_ex_t *e);
-void xbt_backtrace_current(xbt_ex_t *e) {
-#ifdef HAVE_BACKTRACE
- xbt_ex_setup_backtrace(e);
-#endif
-}
-
void xbt_backtrace_display(xbt_ex_t *e) {
+ xbt_ex_setup_backtrace(e);
#ifdef HAVE_BACKTRACE
int i;