Are there any tools for debugging concurrency for C # .NET in VS2010

In the project I'm working on, at the moment we have an unknown number of flickering tests that fail at different rates (anywhere, every time, every time every 5000 starts), which made us believe that we have have serious Heisenbugs Allow. Most of the time, including tracing instructions in the code, change the time frame sufficient to eliminate these errors, or at least make them less common, but obviously this is a wrong error correction.

We are wondering if there are any tools similar to CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) that work in Visual Studio 2010 for stress testing applications and determine potential race conditions and deadlocks

+8
source share
2 answers

In Visual Studio 2010 (not sure which releases) you can create a new profiling session with the option "Concurrency". This should detect the dead ends you are looking for. You can then profile the unit test to automate many runs.

Could not find many images of the results, but here is an example example
(source: microsoft.com )

+3
source

Another tool from Microsoft Research, you can download it from Codeplex - chesstool.codeplex.com . It supports .Net 4.0 libraries, the next version of Chess, but I don’t know that you can use it.

+2
source

All Articles