CHESS: Finding and Reproducing Heisenbugs in Concurrent Programs
Escrito por gacevedo el 15 de Octubre de 2009
We all know how difficult is to debug concurrent programs facing a race condition, deadlock or starvation. Threads are executed in such a way that we can not predict the order of its execution, because it depends on the decisions of the almighty processor scheduler.
CHESS came to the rescue. This tool is capable of find and reproduce the Heisenbugs by taking control of the thread scheduling and using efficient search techniques.
The design of CHESS put wrappers between the program and the CLR (or between the program and the Win32 library, if the program does not use the .NET framework) being able to search all the interleaving nondeterminism.
CHESS works for .NET, Win32 and Singularity (an OS for research) and is currently used by testers in a daily basis in real work.

