> I have an application with a hard-to-find segfault problem that is compiled 
> against IntelMPI and linked with valgrind MPI wrappers, and I when I try to 
> run it with Valgrind, I get several possibly spurious (?) errors of the 
> following forms:
>
> Invalid read of size 8
>    at 0x5D3D570: free (i_rtc_hook.c:57)
>    by 0x13F5AEF4: ??? (in /usr/lib64/libdaploscm.so.2.0.0)
        ...
> Address 0x9193fa8 is 8 bytes before a block of size 568 alloc'd
>   at 0x4C293FA: malloc (vg_replace_malloc.c:299)


A traceback which contains "free (i_rtc_hook.c:57)" gives a hint that
valgrind did not intercept the call to free() like it should have.
Instead the filename should be something like "vg_replace_free.c",
or even perhaps "vg_replace_malloc.c".

Accessing one Word just below an allocated block is something
that many implementations of malloc+free do.  That Word typically
contains size information, some flags, etc., that help malloc+free
maintain the allocation arena.  Valgrind(memcheck) wants to replace
that mechanism entirely.  The reported symptoms indicate that
only the malloc() side was replaced; the free() side was not recognized.




------------------------------------------------------------------------------
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to