On Tue, 2003-06-17 at 02:56, Stephane Donze wrote:
> Is it possible to configure the errors reported by helgrind ?
>
> My multithreaded program uses object recycling to avoid wasting time in
> malloc'ing tons of small objects, so that when a thread T1 uses an
> object, it has often been allocated by another thread T2, and will
> probably be reused by a thread T3 before being freed by a thread T4. As
> a result, the error log produced by helgrind contains zillions of errors
> like this:
>
> ==21303== Thread 28:
> ==21303== Possible data race writing variable at 0x42DBE028
> ==21303== at 0x40971949:
> [snip]
> ==21303== by 0x404FC422: thread_wrapper (vg_libpthread.c:671)
> ==21303== by 0x4009B27C: do__quit (vg_scheduler.c:2154)
> ==21303== Address 0x42DBE028 is 4 bytes inside a block of size 232
> alloc'd by thread 1
> ==21303== at 0x400973AF: malloc (vg_clientfuncs.c:103)
> ==21303== by 0x400978C2: realloc (vg_clientfuncs.c:268)
>
>
> is there a simple way to tell helgrind not to report this kind of error
> ?
In your allocator, use VALGRIND_HG_CLEAN_MEMORY(addr, len) to tell
Helgrind that you're recycling memory, and it should forget what it knew
about it.
J
|