- Find out why no variable name information is printed for races
detected in parallel sections of OpenMP programs. An example:
./vg-in-place --tool=exp-drd exp-drd/tests/omp_prime 4 -t 2
+- Report races in glibc on stdout / stderr back to glibc maintainers.
Testing
Documentation
~~~~~~~~~~~~~
+- Add comment on double checked locking.
+- Add comment on circular buffers.
- Explain how to handle transactions (with regard to locking order).
- Continue the discussion on the Valgrind mailing list about docbook and
'make dist'. See also http://bugs.kde.org/show_bug.cgi?id=162121.
1. Run the regression tests. After having compiled DRD, run the following
command:
perl tests/vg_regtest drd
-2. Test the slowdown for matinv for various matrix sizes via the script
+2. Run Konstantin's regression tests:
+ svn checkout http://data-race-test.googlecode.com/svn/trunk drt
+ make -C drt/unittest -s build
+ ./vg-in-place --tool=drd drt/unittest/racecheck_unittest 2>&1|less
+3. Test the slowdown for matinv for various matrix sizes via the script
drd/scripts/run-matinv (must be about 24 for i == 1 and about
31 for i == 10 with n == 200).
-3. Test whether DRD works with standard KDE applications and whether it does
+4. Test whether DRD works with standard KDE applications and whether it does
not print any false positives:
./vg-in-place --tool=drd kate
./vg-in-place --tool=drd --check-stack-var=yes kate
./vg-in-place --trace-children=yes --tool=drd knode
./vg-in-place --trace-children=yes --tool=drd --check-stack-var=yes knode
./vg-in-place --trace-children=yes --tool=drd amarokapp
-4. Test whether DRD works with standard GNOME applications. Expect
+5. Test whether DRD works with standard GNOME applications. Expect
race reports triggered by ORBit_RootObject_duplicate() and after
having closed the GNOME terminal window:
./vg-in-place --trace-children=yes --tool=drd gnome-terminal
-5. Test DRD with Firefox. First of all, build and install Firefox 3. Next,
- run the following command:
+6. Test DRD with Firefox. First of all, build and install Firefox 3:
+ drd/scripts/download-and-build-firefox
+ Next, run the following command:
LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --trace-children=yes --tool=drd $HOME/software/mozilla-build/dist/bin/firefox-bin
struct barrier_thread_info* q;
const UWord word_tid = tid;
q = VG_(OSetGen_Remove)(p->oset, &word_tid);
+ /* q is only non-zero if the barrier object has been used by thread tid
+ * after the barrier_init() call and before the thread finished.
+ */
if (q)
{
barrier_thread_destroy(q);