[arch-general] valgrind - memory exclusion files on the fritz?
Chi-Hsuan Yen
yan12125 at gmail.com
Wed Nov 23 06:31:17 UTC 2016
On Wed, Nov 23, 2016 at 2:26 PM, David C. Rankin
<drankinatty at suddenlinkmail.com> wrote:
> All,
>
> valgrind is reporting an additional allocation and free along with and
> additional 1M of memory used. Below, 11 bytes should be allocated and freed.
> Instead valgrind reports 1035 bytes. (it's worse if you use strdup). For example:
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> enum { MAXC = 16 };
>
> int main (void) {
>
> char buf[] = "0123456789";
> size_t len = strlen (buf);
> char *s = NULL;
>
> s = malloc (len + 1);
> snprintf (s, len + 1, "%s", buf);
>
> printf (" s : %s\n", s);
>
> free (s);
>
> return 0;
> }
>
> The report from valgrind:
>
> valgrind ./bin/valgrindchk
> ==3917== Memcheck, a memory error detector
> ==3917== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
> ==3917== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info
> ==3917== Command: ./bin/valgrindchk
> ==3917==
> s : 0123456789
> ==3917==
> ==3917== HEAP SUMMARY:
> ==3917== in use at exit: 0 bytes in 0 blocks
> ==3917== total heap usage: 2 allocs, 2 frees, 1,035 bytes allocated
> ==3917==
> ==3917== All heap blocks were freed -- no leaks are possible
> ==3917==
> ==3917== For counts of detected and suppressed errors, rerun with: -v
> ==3917== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
>
> Anybody else experience this problem? Anybody got a fix? I don't find
> anything valgrind related with a cursory search, did a patch get missed with
> the latest build?
>
> --
> David C. Rankin, J.D.,P.E.
In glibc, printf calls malloc. See
http://stackoverflow.com/questions/6743034/does-fprintf-use-malloc-under-the-hood
More information about the arch-general
mailing list