X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f783ed4680c6862a1b7543237e89d1221334bae0..ce584594d53f8661dcd43714a7c2291b804a46e4:/include/xbt/ex.h diff --git a/include/xbt/ex.h b/include/xbt/ex.h index 50ef63e9fe..77b1967708 100644 --- a/include/xbt/ex.h +++ b/include/xbt/ex.h @@ -55,15 +55,15 @@ SG_BEGIN_DECL() # include #include # define MAYDAY_SAVE(m) printf("%d %s:%d save %p\n", \ - (*xbt_getpid)(),__FILE__,__LINE__, \ + xbt_getpid(), __FILE__, __LINE__, \ (m)->jb \ ), # define MAYDAY_RESTORE(m) printf("%d %s:%d restore %p\n", \ - (*xbt_getpid)(),__FILE__,__LINE__, \ + xbt_getpid(), __FILE__, __LINE__, \ (m)->jb \ ), # define MAYDAY_CATCH(e) printf("%d %s:%d Catched '%s'\n", \ - (*xbt_getpid)(),__FILE__,__LINE__, \ + xbt_getpid(), __FILE__, __LINE__, \ (e).msg \ ), #else @@ -262,7 +262,8 @@ typedef enum { cancel_error, /**< an action was canceled */ thread_error, /**< error while [un]locking */ host_error, /**< host failed */ - tracing_error /**< error during the simulation tracing */ + tracing_error, /**< error during the simulation tracing */ + io_error /**< disk or file error */ } xbt_errcat_t; XBT_PUBLIC(const char *) xbt_ex_catname(xbt_errcat_t cat); @@ -304,7 +305,7 @@ typedef struct { #define XBT_RUNNING_CTX_INITIALIZER \ { NULL, 0, { /* content */ NULL, unknown_error, 0, \ /* throw point*/ 0,NULL, NULL,0, NULL, 0, NULL,\ - /* backtrace */ 0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL} } } + /* backtrace */ 0, NULL, /* bt[] */ } } #define XBT_RUNNING_CTX_INITIALIZE(ctx) \ do { \ (ctx)->ctx_mctx = NULL; \ @@ -450,7 +451,7 @@ extern void __xbt_ex_terminate_default(xbt_ex_t * e); _throw_ctx->exception.remote = 0; \ _throw_ctx->exception.host = (char*)NULL; \ _throw_ctx->exception.procname = (char*)xbt_procname(); \ - _throw_ctx->exception.pid = (*xbt_getpid)(); \ + _throw_ctx->exception.pid = xbt_getpid(); \ _throw_ctx->exception.file = (char*)__FILE__; \ _throw_ctx->exception.line = __LINE__; \ _throw_ctx->exception.func = (char*)_XBT_FUNCTION; \ @@ -508,6 +509,8 @@ XBT_PUBLIC(void) xbt_ex_free(xbt_ex_t e); /** @brief Shows a backtrace of the current location */ XBT_PUBLIC(void) xbt_backtrace_display_current(void); +/** @brief reimplementation of glibc backtrace based directly on gcc library, without implicit malloc */ +XBT_PUBLIC(int)xbt_backtrace_no_malloc(void**bt, int size); /** @brief Captures a backtrace for further use */ XBT_PUBLIC(void) xbt_backtrace_current(xbt_ex_t * e); /** @brief Display a previously captured backtrace */