diff --git a/configure.in b/configure.in index 4b1053f08..8da7005d6 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 c603c7e18..b6bb3479a 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -41,9 +41,12 @@ #include #include -#define PRINT_MEM() 0 -#if PRINT_MEM() +#ifdef _DEBUG_FREE_SPACE_ +#ifdef HAVE_MALLOC_H #include +#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);