views:

104

answers:

2

I saw a tool which can tell you if you have design problem in your project and I'm wondering if there is a tool which can tell you dynamically if there are some concurrency problems in your project.

+1  A: 

Chess from MS Research is great (http://research.microsoft.com/en-us/projects/chess/) It detects Concurrency Bugs with the help of Unittests and important: they are reproducable with chess.

Martin Moser
This is a great tool, but I was searching after something which tells you dynamically that your code is prone to deadlocks. For example if you have an escaped object you should get a warning.
Ionel Bratianu
A: 

I think you will find that detecting this type of thing by static code analysis is basically the Halting Problem in disguise and is thus undecidable in the general case. Such a tool almost certainly doesn't exist.

The closest thing to a proving tool that does exist is to model the computation as 'Communicating Sequential Processes', which can be subjected to formal mathematical reasoning. However, this doesn't allow you to produce a tool that can take an arbitrary program in an arbitrary language and compute a proof for it.

ConcernedOfTunbridgeWells