From: jody <jod...@gm...> - 2009-01-29 12:07:28
|
Bart I modified the glibc-2.X-drd.supp and recompiled valgrind. It works - the printf() are not complained about anymore. Thanks! Jody On Thu, Jan 29, 2009 at 11:06 AM, Bart Van Assche <bar...@gm...> wrote: > On Thu, Jan 29, 2009 at 9:58 AM, jody <jod...@gm...> wrote: >> I tried out DRD, but even though i read the DRD manual, >> i don't really understand the output (i used --tool=drd --var-info=yes -v) >> I get many messages concerning the same line, a print statement >> performed by the thread just before it exits the start func: >> ==19067== Conflicting store by thread 2/2 at 0x0400c018 size 4 >> ==19067== at 0x9E841C: mempcpy (in /lib/libc-2.7.so) >> ==19067== by 0x9B3814: vfprintf (in /lib/libc-2.7.so) >> ==19067== by 0x9BC9B2: printf (in /lib/libc-2.7.so) >> ==19067== by 0x8049745: OutputCollector::threadStart(void*) >> (OutputCollector.cpp:242) >> ==19067== by 0x400920A: vg_thread_wrapper (drd_pthread_intercepts.c:193) >> ==19067== by 0xB0950A: start_thread (in /lib/libpthread-2.7.so) >> ==19067== by 0xA4AB2D: clone (in /lib/libc-2.7.so) > > Can you please test either the Valgrind trunk or recompile the > Valgrind sources after having applied the patch you can find below ? > Instructions for downloading and building the Valgrind trunk can be > found here: http://www.valgrind.org/downloads/repository.html > > The above data race reported by DRD refers to internal variables of > the glibc library. The stdio implementation in glibc uses its own > locking implementation, and this implementation uses inline functions. > This makes it impossible for threading tools to intercept the locking > primitives used in the glibc stdio library. The patch below suppresses > data race reports where the top stack frame is in glibc. > > Modified: trunk/glibc-2.X-drd.supp > =================================================================== > --- trunk/glibc-2.X-drd.supp 2009-01-29 09:20:44 UTC (rev 9086) > +++ trunk/glibc-2.X-drd.supp 2009-01-29 09:57:22 UTC (rev 9087) > @@ -48,6 +48,11 @@ > fun:backtrace_symbols > } > { > + libc-stdio > + drd:ConflictingAccess > + obj:/lib*/libc-* > +} > +{ > libc > drd:ConflictingAccess > fun:__libc_enable_asynccancel > > Thanks, > > Bart. > |