X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7eef625065d0b3af4a64b5665009491426db974f..34f2f42cccff62773dd710b695bdfd1363b85d45:/src/xbt/ex.c diff --git a/src/xbt/ex.c b/src/xbt/ex.c index a3c5a8bd4a..1b141a4d9b 100644 --- a/src/xbt/ex.c +++ b/src/xbt/ex.c @@ -66,7 +66,7 @@ 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). @@ -78,7 +78,7 @@ ex_ctx_t *__xbt_ex_ctx_default(void) 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; } @@ -153,6 +153,10 @@ void xbt_ex_display(xbt_ex_t * 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]); @@ -174,12 +178,12 @@ void __xbt_ex_terminate_default(xbt_ex_t * e) } /* 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; @@ -337,7 +341,7 @@ XBT_TEST_UNIT("cleanup", test_cleanup, "cleanup handling") TRY { v1 = 5678; THROW0(1, 2, "blah"); - } CLEANUP { + } TRY_CLEANUP { if (v1 != 5678) xbt_test_fail1("v1 = %d (!= 5678)", v1); c = 1; @@ -385,7 +389,7 @@ static void bad_example(void) cp3 = mallocex(SMALLAMOUNT); strcpy(cp1, "foo"); strcpy(cp2, "bar"); - } CLEANUP { + } TRY_CLEANUP { if (cp3 != NULL) free(cp3); if (cp2 != NULL) @@ -422,7 +426,7 @@ static void good_example(void) 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); @@ -437,4 +441,4 @@ static void good_example(void) } /* end_of_good_example */ } -#endif /* SIMGRID_TEST */ +#endif /* SIMGRID_TEST */