# define HAVE_BACKTRACE 1 /* Hello linux box */
#endif
-#if defined(WIN32) && defined(_M_IX86) && !defined(__GNUC__)
+#if defined(_XBT_WIN32) && defined(_M_IX86) && !defined(__GNUC__)
# define HAVE_BACKTRACE 1 /* Hello x86 windows box */
#endif
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;
}
#if defined(HAVE_EXECINFO_H) && defined(HAVE_POPEN) && defined(ADDR2LINE)
# include "backtrace_linux.c"
-#elif (defined(WIN32) && defined (_M_IX86)) && !defined(__GNUC__)
+#elif (defined(_XBT_WIN32) && defined (_M_IX86)) && !defined(__GNUC__)
# include "backtrace_windows.c"
#else
# include "backtrace_dummy.c"
{
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;
+ &__xbt_ex_terminate_default;
- void xbt_ex_free(xbt_ex_t e)
+void xbt_ex_free(xbt_ex_t e)
{
int i;
TRY {
v1 = 5678;
THROW0(1, 2, "blah");
- } CLEANUP {
+ } TRY_CLEANUP {
if (v1 != 5678)
xbt_test_fail1("v1 = %d (!= 5678)", v1);
c = 1;
cp3 = mallocex(SMALLAMOUNT);
strcpy(cp1, "foo");
strcpy(cp2, "bar");
- } CLEANUP {
+ } TRY_CLEANUP {
if (cp3 != NULL)
free(cp3);
if (cp2 != NULL)
cp3 = mallocex(SMALLAMOUNT);
strcpy(cp1, "foo");
strcpy(cp2, "bar");
- } CLEANUP { /*04 */
+ } TRY_CLEANUP { /*04 */
printf("cp3=%s", cp3 == NULL /*02 */ ? "" : cp3);
if (cp3 != NULL)
free(cp3);
}
/* end_of_good_example */
}
-#endif /* SIMGRID_TEST */
+#endif /* SIMGRID_TEST */