# include <stdio.h>
#include <errno.h>
# 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
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);
#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; \
_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; \
/** @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 */