From: mquinson Date: Tue, 11 Apr 2006 22:23:01 +0000 (+0000) Subject: New function: xbt_display_backtrace(). Sweet while debugging X-Git-Tag: v3.3~3232 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/cf7ebd6e502a23cdb48e71cf7521ceb5e4f04417?hp=50b6bda2816a7b9f7859abdf9ef0f736ca533f80 New function: xbt_display_backtrace(). Sweet while debugging git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2126 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/include/xbt/ex.h b/include/xbt/ex.h index 457047b073..9e4ff9a66d 100644 --- a/include/xbt/ex.h +++ b/include/xbt/ex.h @@ -512,6 +512,7 @@ extern void __xbt_ex_terminate_default(xbt_ex_t *e); void xbt_ex_free(xbt_ex_t *e); void xbt_ex_display(xbt_ex_t *e); +void xbt_display_backtrace(void); /** @} */ #endif /* __XBT_EX_H__ */ diff --git a/src/xbt/ex.c b/src/xbt/ex.c index 8d1cba1bef..5896971119 100644 --- a/src/xbt/ex.c +++ b/src/xbt/ex.c @@ -46,6 +46,27 @@ ex_ctx_t *__xbt_ex_ctx_default(void) { return &ctx; } + +/** \brief show the backtrace of the current point (lovely while debuging) */ +void xbt_display_backtrace(void) { +#if defined(HAVE_EXECINFO_H) && defined(HAVE_POPEN) && defined(ADDR2LINE) + xbt_ex_t e; + int i; + + e.used = backtrace((void**)e.bt,XBT_BACKTRACE_SIZE); + e.bt_strings = NULL; + xbt_ex_setup_backtrace(&e); + for (i=0; i