/* the exception context */
typedef ex_ctx_t *(*ex_ctx_cb_t)(void);
-extern XBT_PUBLIC_DATA(ex_ctx_cb_t) __xbt_ex_ctx;
+XBT_PUBLIC_DATA(ex_ctx_cb_t) __xbt_ex_ctx;
extern ex_ctx_t *__xbt_ex_ctx_default(void);
/* the termination handler */
typedef void (*ex_term_cb_t)(xbt_ex_t *);
-extern XBT_PUBLIC_DATA(ex_term_cb_t) __xbt_ex_terminate;
+XBT_PUBLIC_DATA(ex_term_cb_t) __xbt_ex_terminate;
extern void __xbt_ex_terminate_default(xbt_ex_t *e);
/** @brief Introduce a block where exception may be dealed with
/** @brief Exception destructor */
XBT_PUBLIC(void) xbt_ex_free(xbt_ex_t e);
-XBT_PUBLIC(void) xbt_ex_display(xbt_ex_t *e);
-XBT_PUBLIC(void) xbt_backtrace_display(void);
+/** @brief Shows a backtrace of the current location */
+XBT_PUBLIC(void) xbt_backtrace_display_current(void);
+
+/** @brief Captures a backtrace for further use */
+XBT_PUBLIC(void) xbt_backtrace_current(xbt_ex_t *e);
+/** @brief Display a previously captured backtrace */
+XBT_PUBLIC(void) xbt_backtrace_display(xbt_ex_t *e);
/** @} */
#endif /* __XBT_EX_H__ */