Add --enable-malloc-logging configure option and update log.c to match.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1703 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch 2009-05-11 03:35:25 +00:00
parent af7cdfd82b
commit 6a8583ebc4
2 changed files with 21 additions and 5 deletions

View File

@ -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])

View File

@ -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);