> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users