DevLabs: CHESS
About CHESS – Finding and Reproducing Heisenbugs in Concurrent Programs
Latest CHESS release: Major features in the new release of CHESS (v0.1.30610.2, 06/12/2009) include: Data race detection for managed code; ChessBoard, an interactive shell for CHESS that simplifies the typical user interactions with CHESS, such as launching CHESS runs and managing test results; and Refinement checking for comparing the observed concurrent behaviors of a concurrent data type with its observable serial behaviors.
Given a concurrent test, CHESS repeatedly runs the test so that every run takes a different thread interleaving. On finding an error, CHESS reproduces the erroneous interleaving, tremendously improving the debugging experience. CHESS can find assertion violations, deadlocks, livelocks, data-races, and memory-model errors. CHESS includes a visualization tool for viewing thread interleavings for better concurrency debugging.
CHESS works for unmanaged user-mode programs and for managed programs. CHESS is designed to be used by both developers and testers of concurrent programs. Unlike stress-testing, CHESS does not need lots of threads to create interleaving variety. The users get the most benefit from CHESS by providing a test with small number of threads (say, less than 10) exercising a single concurrency scenario.
See more DevLabs projects >
Feedback
Give feedback about CHESS in the DevLabs Forums.
Bugs with two ore more preemption Hello! First of all I want to thank CHESS developers and researchers for practical oriented research and for applying the results in industry. I'm try... moreWednesday, Nov 18 by Vadim Mutilin
Livelock... not sure how to solve this.Hi guys. First I want to say how cool Chess is; it's already helped me to refactor a lot of code that had nearly unreproducible concurrency bugs. Se... moreThursday, Oct 15 by Aron Weiler
Featured Video
Madan Musuvathi - Getting started with CHESS in Visual Studio 2008