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.
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
Debug assertion failed - workaroundRegarding: http://social.msdn.microsoft.com/Forums/en-US/chess/thread/56288005-4382-4215-9e56-bcaa99fda117 I had used CHESS a few months back to test... moreTuesday, Oct 13 by raxraja
Code with no lock statementsCurrently my code has no lock statements - I want to use CHESS too detect where I need them. I modified the Account class in the Bank example and re... moreWednesday, Oct 7 by Steven J Walker
ASP.NET Cache Testing PatternI'd like to use CHESS to test for thread safety amongst my cached objects within my ASP.NET application. I've constructed a few tests but am struggli... moreWednesday, Sep 30 by davidsny
Featured Video
Madan Musuvathi - Getting started with CHESS in Visual Studio 2008