【问题标题】:What tools exist for testing multithreaded .net code?有哪些工具可用于测试多线程 .net 代码?
【发布时间】:2010-09-17 01:20:58
【问题描述】:

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

【问题讨论】:

    标签: c# .net multithreading unit-testing


    【解决方案1】:

    Typemock Racer 可能是您正在寻找的东西,但我没有使用它 - 我只是想起了一些关于死锁的事情 :)

    或者这个:Deadlock Detector

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 它只是找到运行时死锁,无论如何都很容易找到;因为如果你有一个你的程序完全停止,你只需看看所有的堆栈。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        来自 Microsoft Research 的 announcement 听起来他们有一个工具可以完全满足我的需求。不幸的是,目前还没有.net 版本,但已经计划好了。引用网站:

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

        【讨论】:

        • 微软的工具尚不可用(并且可能会持续一段时间)。
        • 现在可以使用了,但是VS2010或者VS2012还没有。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        • 2010-12-06
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多