summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in13
-rw-r--r--src/helper/log.c13
2 files changed, 21 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index 4b1053f0..8da7005d 100644
--- a/configure.in
+++ b/configure.in
@@ -250,6 +250,19 @@ if test $debug_usb_comms = yes; then
fi
+debug_malloc=no
+AC_ARG_ENABLE(malloc_logging,
+ AS_HELP_STRING([--enable-malloc-logging],
+ [Include free space in logging messages (requires malloc.h).]),
+ [debug_malloc=$enableval], [])
+
+AC_MSG_CHECKING([whether to enable malloc free space logging]);
+AC_MSG_RESULT($debug_malloc)
+if test $debug_malloc = yes; then
+ AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
+fi
+
+
AC_ARG_ENABLE(parport,
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[build_parport=$enableval], [build_parport=no])
diff --git a/src/helper/log.c b/src/helper/log.c
index c603c7e1..b6bb3479 100644
--- a/src/helper/log.c
+++ b/src/helper/log.c
@@ -41,9 +41,12 @@
#include <unistd.h>
#include <stdarg.h>
-#define PRINT_MEM() 0
-#if PRINT_MEM()
+#ifdef _DEBUG_FREE_SPACE_
+#ifdef HAVE_MALLOC_H
#include <malloc.h>
+#else
+#error "malloc.h is required to use --enable-malloc-logging"
+#endif
#endif
int debug_level = -1;
@@ -99,16 +102,16 @@ static void log_puts(enum log_levels level, const char *file, int line, const ch
{
/* print with count and time information */
int t=(int)(timeval_ms()-start);
-#if PRINT_MEM()
+#ifdef _DEBUG_FREE_SPACE_
struct mallinfo info;
info = mallinfo();
#endif
fprintf(log_output, "%s%d %d %s:%d %s()"
-#if PRINT_MEM()
+#ifdef _DEBUG_FREE_SPACE_
" %d"
#endif
": %s", log_strings[level+1], count, t, file, line, function,
-#if PRINT_MEM()
+#ifdef _DEBUG_FREE_SPACE_
info.fordblks,
#endif
string);