【发布时间】:2010-09-17 01:20:58
【问题描述】:
在测试多线程 .net 代码时,是否有任何工具可以帮助查找竞争条件?我正在寻找与 IBM 的 Java 的 ConTest 工具具有类似功能的东西。
【问题讨论】:
标签: c# .net multithreading unit-testing
在测试多线程 .net 代码时,是否有任何工具可以帮助查找竞争条件?我正在寻找与 IBM 的 Java 的 ConTest 工具具有类似功能的东西。
【问题讨论】:
标签: c# .net multithreading unit-testing
Typemock Racer 可能是您正在寻找的东西,但我没有使用它 - 我只是想起了一些关于死锁的事情 :)
或者这个:Deadlock Detector
【讨论】:
有一个很棒的 windbg 扩展,由 Steve Johnson 编写,名为 sosex,它有一个死锁查找命令。你可以在http://www.stevestechspot.com/downloads/sosex_32.zip找到它,你可以阅读更多关于它的信息 在这里:http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx 在这里:http://www.stevestechspot.com/SOSEXUpdatedV11Available.aspx。
【讨论】:
你见过Debug Inspector (www.debuginspector.com) 吗?
它处理托管和非托管死锁,涵盖 WaitForSingleObject 和 WaitForMultipleObjects,适用于 XP 和 Vista
【讨论】:
来自 Microsoft Research 的 announcement 听起来他们有一个工具可以完全满足我的需求。不幸的是,目前还没有.net 版本,但已经计划好了。引用网站:
CHESS 是一种自动查找工具 多线程软件中的错误 线程的系统探索 时间表。它会发现错误,例如 数据争用、死锁、挂起和 数据损坏导致的访问 违规行为,极难 使用当前的测试工具查找。一次 CHESS 定位错误,它提供了一个 完全可重复的执行 导致错误的程序,因此 极大地帮助调试过程。 此外,国际象棋提供了一个有价值的 和测试覆盖率的新颖概念 适用于多线程程序。 CHESS 可以使用现有的并发测试 案例,因此易于部署。 开发人员和测试人员都应该 发现国际象棋很有用。
【讨论】: