This patch enables ngIRCd to enable "memory tracing" of GNU libc when running
in debug mode (configure: --enable-debug) and the functionality is available.
(http://www.gnu.org/software/libc/manual/html_node/Allocation-Debugging.html)

Alexander Barton, alex@barton.de, 2007-11-25

 configure.in        |    1 +
 src/ngircd/ngircd.c |    6 ++++++
 2 files changed, 7 insertions(+)

Index: configure.in
===================================================================
RCS file: /srv/cvs/ngircd/ngircd/configure.in,v
retrieving revision 1.125
diff -u -p -r1.125 configure.in
--- configure.in	26 Dec 2006 16:00:45 -0000	1.125
+++ configure.in	25 Nov 2007 14:28:04 -0000
@@ -446,6 +446,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"?
Index: src/ngircd/ngircd.c
===================================================================
RCS file: /srv/cvs/ngircd/ngircd/src/ngircd/ngircd.c,v
retrieving revision 1.117
diff -u -p -r1.117 ngircd.c
--- src/ngircd/ngircd.c	21 Nov 2007 12:16:36 -0000	1.117
+++ src/ngircd/ngircd.c	25 Nov 2007 14:28:04 -0000
@@ -87,6 +87,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;
