> 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