Data-race detection algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- pthread rwlock state tracking and support.
+- Print an error message when memory is freed that contains a locked
+ reader-writer synchronization object.
+- Print an error message when a semaphore is freed that is being waited upon.
- Eliminate the upper bounds on the number of mutexes, condition variables,
semaphores, barriers and threads by converting arrays into OSet's.
- Implement segment merging, such that the number of segments per thread
remains limited even when there is no synchronization between threads.
+- Add locking order checking.
+- Make sure tc14_laog_dinphils is run during exp-drd regression tests.
- Discuss on the Valgrind mailing list how to make it possible to call
POSIX thread synchronization primitives from client code (drd_intercepts.c)
without triggering Valgrind's redirection mechanism.
(e.g. exp-drd/test/matinv.c).
+Limitations
+~~~~~~~~~~~
+- Does not work with a glibc library compiled with linuxthreads -- NPTL is
+ required for proper operation.
+
+
Known bugs
~~~~~~~~~~
- Gets killed by the OOM handler for realistically sized applications,
e.g. knode and OpenOffice.
-- Does not work with a glibc library compiled with linuxthreads -- NPTL is
- required for proper operation.
- [x86_64] Reports "Allocation context: unknown" for BSS symbols on AMD64
(works fine on i386). This is a bug in Valgrind's debug info reader
-- VG_(find_seginfo)() returns NULL for BSS symbols on x86_64. Not yet in
the KDE bug tracking system.
+- tc04_free_lock fails on AMD64 + openSUSE 10.3 (free() locked mutex).
- --trace-mem=yes can cause crashes. This might be caused by the code that
prints backtraces. An example (AMD64):
./vg-in-place --tool=exp-drd --trace-mem=yes exp-drd/tests/pth_barrier 2 2 1