From 940af669b3a703145185c947e31d1d3374bc66da Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 Mar 2009 19:10:18 +0100 Subject: poison: added valgrind support If the header valgrind/memcheck.h is available, add VALGRIND_MAKE_MEM_NOACCESS() and VALGRIND_MAKE_MEM_UNDEFINED() support, which enables nice warnings in the valgrind memory checker. --- configure.ac | 1 + src/poison.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/configure.ac b/configure.ac index ac5819f31..1358b0633 100644 --- a/configure.ac +++ b/configure.ac @@ -101,6 +101,7 @@ AC_CHECK_LIB(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",) AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",) AC_CHECK_HEADERS(locale.h) +AC_CHECK_HEADERS(valgrind/memcheck.h) dnl diff --git a/src/poison.h b/src/poison.h index d37ff233e..fa924a31b 100644 --- a/src/poison.h +++ b/src/poison.h @@ -20,6 +20,12 @@ #define MPD_POISON_H #ifndef NDEBUG +#include "config.h" + +#ifdef HAVE_VALGRIND_MEMCHECK_H +#include +#endif + #include #endif @@ -37,6 +43,10 @@ poison_noaccess(void *p, size_t length) (void)length; #else memset(p, 0x01, length); + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_NOACCESS(p, length); +#endif #endif } @@ -54,6 +64,10 @@ poison_undefined(void *p, size_t length) (void)length; #else memset(p, 0x02, length); + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_UNDEFINED(p, length); +#endif #endif } -- cgit v1.2.3