about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--configure.in1
-rw-r--r--src/ngircd/ngircd.c6
2 files changed, 7 insertions, 0 deletions
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;