On Fri, Jul 23, 2021 at 06:02:08PM +0200, Omar Polo wrote:

> 
> Joe Nelson <j...@begriffs.com> writes:
> 
> > Omar Polo wrote:
> >> There's a built-in mechanisms to check for memory leaks:
> >> 
> >>    https://www.drijf.net/malloc/
> >> 
> >> don't know if it still applies, I tried only once and was like a couple
> >> of years ago (if not more).
> >
> > Thanks for the tip, Omar. I just tried compiling malloc.c with MALLOC_STATS
> > defined, but I got a compiler error:
> >
> >     clang -O2 -pipe -g -Wimplicit -I/usr/src/lib/libc/include 
> > -I/usr/src/lib/libc/hidden \
> >         -D__LIBC__  -Werror-implicit-function-declaration -include 
> > namespace.h           \
> >         -Werror=deprecated-declarations -DAPIWARN -DYP 
> > -I/usr/src/lib/libc/yp            \
> >         -I/usr/src/lib/libc -I/usr/src/lib/libc/gdtoa                       
> >              \
> >         -I/usr/src/lib/libc/arch/amd64/gdtoa -DINFNAN_CHECK 
> > -DMULTIPLE_THREADS           \
> >         -DNO_FENV_H -DUSE_LOCALE -I/usr/src/lib/libc 
> > -I/usr/src/lib/libc/citrus          \
> >         -DRESOLVSORT -DFLOATING_POINT -DPRINTF_WIDE_CHAR -DSCANF_WIDE_CHAR 
> > -DFUTEX  -MD  \
> >         -MP  -c /usr/src/lib/libc/stdlib/malloc.c -o malloc.o
> >
> >     /usr/src/lib/libc/stdlib/malloc.c:1613:14: error: use of undeclared 
> > identifier 'd'
> >                                                     
> > STATS_SUB(d->malloc_used, roldsz - rnewsz);
> >                                                                       ^
> >     1 error generated.
> >
> > Malloc source version:
> >     $OpenBSD: malloc.c,v 1.270 2021/04/09 06:05:21 otto Exp $
> > System:
> >     6.9 stable
> 
> that seems to be a typo?
> 
> not tried, but compiles :)

yeah, MALLOC_STATS is not well maintained... 

        -Otto

> 
> Index: malloc.c
> ===================================================================
> RCS file: /home/cvs/src/lib/libc/stdlib/malloc.c,v
> retrieving revision 1.270
> diff -u -p -r1.270 malloc.c
> --- malloc.c  9 Apr 2021 06:05:21 -0000       1.270
> +++ malloc.c  23 Jul 2021 16:01:26 -0000
> @@ -1610,7 +1610,7 @@ orealloc(struct dir_info **argpool, void
>                       }
>                       if (munmap((char *)r->p + rnewsz, roldsz - rnewsz))
>                               wrterror(pool, "munmap %p", (char *)r->p + 
> rnewsz);
> -                     STATS_SUB(d->malloc_used, roldsz - rnewsz);
> +                     STATS_SUB(pool->malloc_used, roldsz - rnewsz);
>                       r->size = gnewsz;
>                       if (MALLOC_MOVE_COND(gnewsz)) {
>                               void *pp = MALLOC_MOVE(r->p, gnewsz);

Reply via email to