From 3dff94c2e4f48a1f222aba613d2cee2911ea9c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodo=20M=C3=B6ller?= Date: Sun, 18 Jul 1999 22:39:45 +0000 Subject: Add optional (compile-time configurable) time to CRYPTO_mem_leaks output. This is much more helpful than the counter when doing tests with the library interactively. --- crypto/mem.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'crypto/mem.c') diff --git a/crypto/mem.c b/crypto/mem.c index 8a74507716..9693842ec3 100644 --- a/crypto/mem.c +++ b/crypto/mem.c @@ -58,6 +58,9 @@ #include #include +#ifdef CRYPTO_MDEBUG_TIME +# include +#endif #include #include #include @@ -89,6 +92,9 @@ typedef struct mem_st const char *file; int line; unsigned long order; +#ifdef CRYPTO_MDEBUG_TIME + time_t time; +#endif } MEM; int CRYPTO_mem_ctrl(int mode) @@ -238,6 +244,9 @@ void *CRYPTO_dbg_malloc(int num, const char *file, int line) m->order=order; } m->order=order++; +#ifdef CRYPTO_MDEBUG_TIME + m->time=time(NULL); +#endif if ((mm=(MEM *)lh_insert(mh,(char *)m)) != NULL) { /* Not good, but don't sweat it */ @@ -322,8 +331,17 @@ static void print_leak(MEM *m, MEM_LEAK *l) if(m->addr == (char *)l->bio) return; +#ifdef CRYPTO_MDEBUG_TIME + { + struct tm *lcl = localtime(&m->time); + sprintf(buf,"[%02d:%02d:%02d] %5lu file=%s, line=%d, number=%d, address=%08lX\n", + lcl->tm_hour,lcl->tm_min,lcl->tm_sec, + m->order,m->file,m->line,m->num,(unsigned long)m->addr); + } +#else sprintf(buf,"%5lu file=%s, line=%d, number=%d, address=%08lX\n", m->order,m->file,m->line,m->num,(unsigned long)m->addr); +#endif BIO_puts(l->bio,buf); l->chunks++; l->bytes+=m->num; -- cgit v1.2.3