--- src/mesa/drivers/dri/radeon/radeon_debug.h | 52 ++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index ef8b967..7de54d2 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -171,4 +171,56 @@ static inline void radeon_debug_remove_indent(void) } while(0) +/* uncomment to enable malloc debugging */ +/* #define DEBUG_MALLOC */ + +#ifdef DEBUG_MALLOC + +static inline void *mycs(size_t T, const char *fi, const char *fu, unsigned l) +{ + void *a = calloc(1, T); + radeon_error("calloc struct of %zu bytes in %p (%...@%s:%d)\n", T, a, fu, fi, l); + return a; +} + +static inline void *myms(size_t T, const char *fi, const char *fu, unsigned l) +{ + void *a = malloc(T); + radeon_error("malloc struct of %zu bytes in %p (%...@%s:%d)\n", T, a, fu, fi, l); + return a; +} + +static inline void *mym(size_t T, const char *fi, const char *fu, unsigned l) +{ + void *a = malloc(T); + radeon_error("malloc of %zu bytes in %p (%...@%s:%d)\n", T, a, fu, fi, l); + return a; +} + +static inline void *myc(size_t T, const char *fi, const char *fu, unsigned l) +{ + void *a = calloc(1, T); + radeon_error("calloc of %zu bytes in %p (%...@%s:%d)\n", T, a, fu, fi, l); + return a; +} + +#undef CALLOC_STRUCT +#undef CALLOC +#undef MALLOC +#undef MALLOC_STRUCT +#undef FREE + +#define CALLOC_STRUCT(T) mycs(sizeof(struct T), __FILE__, __func__, __LINE__) +#define MALLOC_STRUCT(T) myms(sizeof(struct T), __FILE__, __func__, __LINE__) +#define CALLOC(BYTES) myc(BYTES, __FILE__, __func__, __LINE__) +#define MALLOC(BYTES) mym(BYTES, __FILE__, __func__, __LINE__) +#define FREE(PTR) \ +do { \ + radeon_error("free of %p in %...@%s:%d\n", PTR, __func__, __FILE__, __LINE__); \ + free(PTR); \ +} while (0) + +#endif /* DEBUG_MALLOC */ + #endif + -- 1.7.0.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev