1 2YARD, Yet Another Race Detector, built on the Helgrind framework 3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 5Julian Seward, OpenWorks Ltd, 19 August 2008 6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 8The YARD race detector lives in svn://svn.valgrind.org/branches/YARD. 9 10It uses a new and relatively simple race detection engine, based on 11the idea of shadowing each memory location with two vector timestamps, 12indicating respectively the "earliest safe read point" and "earliest 13safe write point". As far as I know this is a novel approach. Some 14features of the implementation: 15 16* Modularity. The entire race detection engine is placed in a 17 standalone library (libhb_core.c) with a simple interface (libhb.h). 18 This makes it easier to debug and verify the engine; indeed it can 19 be built as a standalone executable with test harness using "make -f 20 Makefile_sa". 21 22* Simplified and scalable storage management, so that large programs, 23 with many synchronisation events, can be handled. 24 25* Ability to report both call stacks involved in a race, without 26 excessive time or space overhead. 27 28* Pure happens before operation, so as not to give any false 29 positives. 30 31To use, build as usual and run as "--tool=helgrind". 32 33You can disable lock order checking with --track-lockorders=no, as it 34sometimes produces an annoying amount of output. 35