XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_ex, xbt, "Exception mecanism");
/* default __ex_ctx callback function */
-ex_ctx_t *__xbt_ex_ctx_default(void)
+xbt_running_ctx_t *__xbt_ex_ctx_default(void)
{
/* Don't scream: this is a default which is never used (so, yes,
there is one setjump container by running entity).
It also gets overriden in xbt/context.c when using ucontextes (as well as
in Java for now, but after the java overhaul, it will get cleaned out)
*/
- static ex_ctx_t ctx = XBT_CTX_INITIALIZER;
+ static xbt_running_ctx_t ctx = XBT_RUNNING_CTX_INITIALIZER;
return &ctx;
}
xbt_ex_free(*e);
#else
- ERROR0("No backtrace on this arch");
+ XBT_ERROR("No backtrace on this arch");
#endif
}
gras_os_myname(), (*xbt_getpid) (),
xbt_ex_catname(e->category), e->value, e->msg,
e->procname, thrower ? thrower : " in this process");
- CRITICAL1("%s", e->msg);
+ XBT_CRITICAL("%s", e->msg);
if (!e->remote && !e->bt_strings)
xbt_ex_setup_backtrace(e);
{
int i;
+ if (!xbt_binary_name) {
+ fprintf(stderr, "variable 'xbt_binary_name' set to NULL. Cannot compute the backtrace\n");
+ return;
+ }
fprintf(stderr, "\n");
for (i = 0; i < e->used; i++)
fprintf(stderr, "%s\n", e->bt_strings[i]);
}
/* the externally visible API */
-XBT_EXPORT_NO_IMPORT(ex_ctx_cb_t) __xbt_ex_ctx = &__xbt_ex_ctx_default;
+XBT_EXPORT_NO_IMPORT(xbt_running_ctx_fetcher_t) __xbt_running_ctx_fetch = &__xbt_ex_ctx_default;
XBT_EXPORT_NO_IMPORT(ex_term_cb_t) __xbt_ex_terminate =
&__xbt_ex_terminate_default;