X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/62055629456573fcdea59beeccbcceaa13e79c95..cc375ad134c19925e1e343bae932be21cf8a8caf:/src/xbt/ex.c diff --git a/src/xbt/ex.c b/src/xbt/ex.c index 579f63d2d1..ac2fa9b01b 100644 --- a/src/xbt/ex.c +++ b/src/xbt/ex.c @@ -46,11 +46,8 @@ #include "portable.h" /* execinfo when available */ #include "xbt/ex.h" #include "xbt/str.h" -#include "xbt/module.h" /* xbt_binary_name */ #include "xbt_modinter.h" /* backtrace initialization headers */ -#include "xbt/synchro.h" /* xbt_thread_self */ -#include "gras/Virtu/virtu_interface.h" /* gras_os_myname */ #include "xbt/ex_interface.h" #undef HAVE_BACKTRACE @@ -106,7 +103,6 @@ void xbt_backtrace_display(xbt_ex_t * e) /* don't fool xbt_ex_free with uninitialized msg field */ e->msg = NULL; - e->remote = 0; xbt_ex_free(*e); #else @@ -135,20 +131,17 @@ void xbt_ex_display(xbt_ex_t * e) { char *thrower = NULL; - if (e->remote) - thrower = bprintf(" on host %s(%d)", e->host, e->pid); - fprintf(stderr, "** SimGrid: UNCAUGHT EXCEPTION received on %s(%d): category: %s; value: %d\n" "** %s\n" "** Thrown by %s()%s\n", - gras_os_myname(), xbt_getpid(), + xbt_binary_name, xbt_getpid(), xbt_ex_catname(e->category), e->value, e->msg, e->procname, thrower ? thrower : " in this process"); XBT_CRITICAL("%s", e->msg); xbt_free(thrower); - if (!e->remote && !e->bt_strings) + if (!e->bt_strings) xbt_ex_setup_backtrace(e); #ifdef HAVE_BACKTRACE @@ -176,8 +169,7 @@ void xbt_ex_display(xbt_ex_t * e) void __xbt_ex_terminate_default(xbt_ex_t * e) { xbt_ex_display(e); - - abort(); + xbt_abort(); } /* the externally visible API */ @@ -191,12 +183,6 @@ void xbt_ex_free(xbt_ex_t e) int i; free(e.msg); - if (e.remote) { - free(e.procname); - free(e.file); - free(e.func); - free(e.host); - } if (e.bt_strings) { for (i = 0; i < e.used; i++) @@ -211,24 +197,33 @@ const char *xbt_ex_catname(xbt_errcat_t cat) { switch (cat) { case unknown_error: - return "unknown_err"; + return "unknown error"; case arg_error: - return "invalid_arg"; + return "invalid argument"; + case bound_error: + return "out of bounds"; case mismatch_error: return "mismatch"; case not_found_error: return "not found"; case system_error: - return "system_err"; + return "system error"; case network_error: - return "network_err"; + return "network error"; case timeout_error: return "timeout"; + case cancel_error: + return "action canceled"; case thread_error: - return "thread_err"; - default: - return "INVALID_ERR"; + return "thread error"; + case host_error: + return "host failed"; + case tracing_error: + return "tracing error"; + case io_error: + return "io error"; } + return "INVALID ERROR"; } @@ -297,7 +292,7 @@ XBT_TEST_UNIT("value", test_value, "exception value passing") CATCH(ex) { xbt_test_add("exception value passing"); if (ex.category != unknown_error) - xbt_test_fail("category=%d (!= 1)", ex.category); + xbt_test_fail("category=%d (!= 1)", (int)ex.category); if (ex.value != 2) xbt_test_fail("value=%d (!= 2)", ex.value); if (strcmp(ex.msg, "toto")) @@ -309,8 +304,10 @@ XBT_TEST_UNIT("value", test_value, "exception value passing") XBT_TEST_UNIT("variables", test_variables, "variable value preservation") { xbt_ex_t ex; - int r1, r2; - volatile int v1, v2; + int r1; + int _XBT_GNUC_UNUSED r2; + int v1; + volatile int v2; r1 = r2 = v1 = v2 = 1234; TRY { @@ -412,7 +409,7 @@ typedef struct { static void good_example(void) { - global_context_t *global_context = malloc(sizeof(global_context_t)); + global_context_t *global_context = xbt_malloc(sizeof(global_context_t)); /* GOOD_EXAMPLE */ { /*01 */