From abe3c6bd783939efbc85bb77066bc1b042caa18b Mon Sep 17 00:00:00 2001 From: mquinson Date: Fri, 6 Oct 2006 08:17:11 +0000 Subject: [PATCH 1/1] Tell how much bytes we wanted when a malloc failed git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2856 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- include/xbt/sysdep.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/include/xbt/sysdep.h b/include/xbt/sysdep.h index e75b40f62c..18f04e0f05 100644 --- a/include/xbt/sysdep.h +++ b/include/xbt/sysdep.h @@ -20,6 +20,12 @@ #include "xbt/asserts.h" SG_BEGIN_DECL() + +/* FIXME: better place? */ +int asprintf (char **ptr, const char *fmt, /*args*/ ...) _XBT_GNUC_PRINTF(2,3); +int vasprintf (char **ptr, const char *fmt, va_list ap); +char *bprintf (const char*fmt, ...) _XBT_GNUC_PRINTF(1,2); + /* They live in asserts.h, but need to be declared before this module. double declaration to cut dependency cycle */ @@ -40,7 +46,7 @@ static XBT_INLINE char *xbt_strdup(const char *s) { if (s) { res=strdup(s); if (!res) - xbt_die("memory allocation error"); + xbt_die("memory allocation error (strdup returned NULL)"); } return res; } @@ -49,7 +55,7 @@ static XBT_INLINE char *xbt_strdup(const char *s) { static XBT_INLINE void *xbt_malloc(int n){ void *res=malloc(n); if (!res) - xbt_die("Memory allocation failed"); + xbt_die(bprintf("Memory allocation of %d bytes failed",n)); return res; } @@ -58,7 +64,7 @@ static XBT_INLINE void *xbt_malloc(int n){ static XBT_INLINE void *xbt_malloc0(int n) { void *res=calloc(n,1); if (!res) - xbt_die("Memory callocation failed"); + xbt_die(bprintf("Memory callocation of %d bytes failed",n)); return res; } @@ -70,7 +76,7 @@ static XBT_INLINE void *xbt_realloc(void*p,int s){ if (p) { res=realloc(p,s); if (!res) - xbt_die("memory allocation error"); + xbt_die(bprintf("memory (re)allocation of %d bytes failed",s)); } else { res=xbt_malloc(s); } @@ -102,10 +108,6 @@ static XBT_INLINE void *xbt_realloc(void*p,int s){ /** @} */ -/* FIXME: better place? */ -int asprintf (char **ptr, const char *fmt, /*args*/ ...) _XBT_GNUC_PRINTF(2,3); -int vasprintf (char **ptr, const char *fmt, va_list ap); -char *bprintf (const char*fmt, ...) _XBT_GNUC_PRINTF(1,2); SG_END_DECL() -- 2.20.1