C#/ .NET分析工具查找竞争条件/死锁

Ste*_*unn 40 .net c# multithreading static-analysis ndepend

有没有一个工具可以分析.NET代码并找到竞争条件?

我有一些代码,它有一个公共静态属性,可以获取或创建一个私有静态字段.它还有一个公共静态方法,将此字段设置为null(...是的,我知道!..)

由于这些方法中没有任何一种方法可以锁定,因此可以肯定的是,未来的事情将会出现严重错误.我需要一个工具,它递归地遍历调用这些方法之一的东西,看看是否有任何东西在另一个线程上产生.

我正在寻找一个工具或者一个nDepend SQL脚本(如果可能的话).

ang*_*son 20

你可能正在寻找其中一个:


注意:此答案来自2010年.与所有建议答案一样,建议往往会随着时间的推移而变化.现在可能还有其他产品,CHESS是一个微软研究实验室项目可能已经演变成最终产品或完全被废弃.请尽量回答这个问题,并对现在适用的产品进行新的研究.