From c769cbecb6214f518135c4bb2a52479747c2bf7b Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Wed, 13 Aug 2008 16:00:57 +0200 Subject: [PATCH] Enable GNU libc "memory tracing" when compiled with debug code. This patch lets ngIRCd activate "memory tracing" of the GNU libc when compiled with debug code (configure: --enable-debug) and the functionality is available on the system. (http://www.gnu.org/software/libc/manual/html_node/Allocation-Debugging.html) --- configure.in | 1 + src/ngircd/ngircd.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/configure.in b/configure.in index 7cbc80ac..36f0bc28 100644 --- a/configure.in +++ b/configure.in @@ -457,6 +457,7 @@ AC_ARG_ENABLE(debug, if test "$x_debug_on" = "yes"; then AC_DEFINE(DEBUG, 1) test "$GCC" = "yes" && CFLAGS="-pedantic $CFLAGS" + AC_CHECK_FUNCS(mtrace) fi # enable "strict RFC rules"? diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 9239edfe..952a10a4 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -84,6 +84,12 @@ main( int argc, const char *argv[] ) int i; size_t n; +#if defined(DEBUG) && defined(HAVE_MTRACE) + /* enable GNU libc memory tracing when running in debug mode + * and functionality available */ + mtrace(); +#endif + umask( 0077 ); NGIRCd_SignalQuit = NGIRCd_SignalRestart = NGIRCd_SignalRehash = false;