Update Linux x86 system call number definitions
[valgrind.git] / helgrind / README_YARD.txt
blob992769c3f4222aa509fa7b74894445ff7343c47a
2 YARD, Yet Another Race Detector, built on the Helgrind framework
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 Julian Seward, OpenWorks Ltd, 19 August 2008
6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 The YARD race detector lives in svn://svn.valgrind.org/branches/YARD.
10 It uses a new and relatively simple race detection engine, based on
11 the idea of shadowing each memory location with two vector timestamps,
12 indicating respectively the "earliest safe read point" and "earliest
13 safe write point".  As far as I know this is a novel approach.  Some
14 features of the implementation:
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".
22 * Simplified and scalable storage management, so that large programs,
23   with many synchronisation events, can be handled.
25 * Ability to report both call stacks involved in a race, without
26   excessive time or space overhead.
28 * Pure happens before operation, so as not to give any false
29   positives.
31 To use, build as usual and run as "--tool=helgrind".
33 You can disable lock order checking with --track-lockorders=no, as it
34 sometimes produces an annoying amount of output.