有哪些工具可用于测试多线程.net代码?

时间:2008-10-14 08:41:10

标签: c# .net multithreading unit-testing

在测试多线程.net代码时,是否有任何工具可以帮助查找竞争条件?我正在寻找与IBM的ConTest Java工具具有类似功能的东西。

4 个答案:

答案 0 :(得分:3)

Typemock Racer可能是您正在寻找的但我没有使用它 - 我只记得有关死锁的事情:)

或者:Deadlock Detector

答案 1 :(得分:2)

来自Microsoft Research的这个announcement听起来像是有一个工具可以完全符合我的要求。不幸的是,还没有.net版本,但有一个计划。引用该网站:

  

CHESS是一种自动查找工具   多线程软件中的错误   系统探索线程   时间表。它发现错误,例如   数据争用,死锁,挂起和   数据损坏引起的访问   违规,这是非常难的   找到当前的测试工具。一旦   CHESS找到一个错误,它提供了一个   完全可重复执行   程序导致错误,因此   大大有助于调试过程。   此外,CHESS提供了宝贵的价值   和测试覆盖的新概念   适合多线程程序。   CHESS可以使用现有的并发测试   案例,因此易于部署。   开发人员和测试人员都应该   找到CHESS很有用。

答案 2 :(得分:1)

你见过Debug Inspector(www.debuginspector.com)吗?

它有托管和非托管死锁,涵盖WaitForSingleObject和WaitForMultipleObjects,适用于XP和Vista

答案 3 :(得分:1)

有一个伟大的windbg扩展,由Steve Johnson编写,称为sosex,它具有死锁查找命令。您可以在http://www.stevestechspot.com/downloads/sosex_32.zip找到它,您可以阅读更多相关信息 在这里:http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx 在这里:http://www.stevestechspot.com/SOSEXUpdatedV11Available.aspx