|
From: Bart V. A. <bar...@gm...> - 2006-03-04 18:25:12
|
Good news: my data race detection tool, although far from finished, is
already producing some output. It can already show the list of
conflicting accesses between threads. This list is based on the
following information:
- instrumentation of all memory loads.
- instrumentation of all stores to memory.
- at which time new threads are created.
I really want to filter out memory accesses protected by mutexes. How
should my tool be informed about calls to pthread_mutex_lock() and
pthread_mutex_unlock() ? Is anyone willing to make
VG_(track_{pre|post}_mutex_{lock|unlock}) working again ? I also
really need to know when pthread_join is called.
$ inst/bin/valgrind --tool=3Ddrd drd/tests/fp_race
=3D=3D4811=3D=3D drd, a data race detector.
=3D=3D4811=3D=3D Copyright (C) 2006, and GNU GPL'd, by Bart Van Assche.
=3D=3D4811=3D=3D Using LibVEX rev 1579, a library for dynamic binary transl=
ation.
=3D=3D4811=3D=3D Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
=3D=3D4811=3D=3D Using valgrind-3.2.0.SVN, a dynamic binary instrumentation=
framework.
=3D=3D4811=3D=3D Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward e=
t al.
=3D=3D4811=3D=3D For more details, rerun with: -v
=3D=3D4811=3D=3D
s_d1 =3D 1 (should be 1)
s_d2 =3D 2 (should be 2)
s_d3 =3D 5 (should be 5)
=3D=3D4811=3D=3D
Conflicting accesses between thread 1 and thread 2 (vector clocks [ 1:
2 ] and [ 1: 1, 2: 1 ])
0x040161C8 W W
0x040161C9 W W
0x040161CA W W
0x040161CB W W
0x04016EF0 W R
0x04016EF1 W W
0x04019000 W W
0x04019001 W W
0x04019002 W W
0x04019003 W W
0x04019004 W W
0x04019005 W W
0x04019006 W W
0x04019007 W W
0x04019008 W W
0x04019009 W W
0x0401900A W W
0x0401900B W W
0x0401900C W W
0x0401900D W W
0x0401900E W W
0x0401900F W W
0x04019010 W W
0x04019011 W W
0x04019012 W W
0x04019013 W W
0x04019014 W W
0x04019015 W W
0x04019016 W W
0x04044960 W R
0x04044961 W W
0x0426E600 W W
0x0426E601 W W
0x0426E602 W W
0x0426E603 W W
0x0426E604 W W
0x0426E605 W W
0x0426E606 W W
0x0426E607 W W
0x0426E608 W W
0x0426E609 W W
0x0426E60A W W
0x0426E60B W W
0x0426E60C W W
0x0426E60D W W
0x0426E60E W W
0x0426E60F W W
0x0426E610 W W
0x0426E611 W W
0x0426E612 W W
0x0426E613 W W
0x0426E614 W W
0x0426E615 W W
0x0426E616 W W
0x0426E617 W W
0x0426E618 W W
0x0426E619 W W
0x0426E61A W W
0x0426E61B W W
0x0426E61C W W
0x0426E61D W W
0x0426E61E W W
0x0426E61F W W
0x0426E620 W W
0x0426E621 W W
0x0426E622 W W
0x0426E623 W W
0x0426E64C W R
0x0426E64D W R
0x0426E64E W R
0x0426E64F W R
0x0426E650 W R
0x0426E651 W R
0x0426E652 W R
0x0426E653 W R
0x0426E65C W W
0x0426E65D W W
0x0426E65E W W
0x0426E65F W W
0x0426F7C8 W W
0x0426F7C9 W W
0x0426F7CA W W
0x0426F7CB W W
0x0426F7CC W W
0x0426F7CD W W
0x0426F7CE W W
0x0426F7CF W W
0x0426F7D0 W W
0x0426F7D1 W W
0x0426F7D2 W W
0x0426F7D3 W W
0x04472C08 W W
0x04472C09 W W
0x04472C0A W W
0x04472C0B W W
0x04472D98 W R
0x04472D99 W R
0x04472D9A W R
0x04472D9B W R
0x08049B24 R W
0x08049B25 R W
0x08049B26 R W
0x08049B27 R W
0x08049B48 R W
0x08049B49 R W
0x08049B4A R W
0x08049B4B R W
0x08049B4C R W
0x08049B4D R W
0x08049B4E R W
0x08049B4F R W
0x08049B50 W W
0x08049B51 W W
0x08049B52 W W
0x08049B53 W W
0x08049B54 W W
0x08049B55 W W
0x08049B56 W W
0x08049B57 W W
0x08049B60 W W
0x08049B61 W W
0x08049B62 W W
0x08049B63 W W
|