【问题标题】:Are there any concurrency debugging tools for C#.NET in VS2010VS2010中是否有C#.NET的并发调试工具
【发布时间】:2011-11-17 16:34:52
【问题描述】:

在我目前正在进行的项目中,我们有未知数量的闪烁测试,这些测试以不同的速度失败(从每隔一次运行到每 5000 次运行一次),这使我们相信我们有一些严重的 Heisenbugs解决。大多数情况下,在代码中包含跟踪语句会更改足够的时间以消除这些错误,或者至少减少它们发生的频率,但这显然不是有效的错误修复。

我们想知道是否有任何与 CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) 类似的工具在 Visual Studio 2010 中/与 Visual Studio 2010 一起工作以对应用程序进行压力测试和检测潜在的竞争条件和死锁?

【问题讨论】:

  • 以下问题可能会有所帮助:stackoverflow.com/questions/1715822/…
  • 谢谢 - 提供有用的信息,尤其是关于编写线程安全测试和 Typemock Racer。这里的信息 (stackoverflow.com/questions/537014/…) 也很有用。
  • 您是否有机会尝试单元测试 处理单例和静态对象的类,这些对象在某些单元测试 中写入并在其他中读取?
  • 我们只在管道中使用静态对象来进行 SetUp() 方法中的测试,但我们已经在 TearDown() 方法中严格重置它们,并且它们从未经过测试。这是一个非常大的项目,有很多并发,我们知道问题出在我们的生产代码中,我们只需要能够一致地重现竞态/死锁条件来发现问题——我们也相信有更多的并发问题比我们迄今为止实际目睹的要多。像 CHESS 这样的工具可以为我们解决所有这些问题。

标签: c# concurrency tdd race-condition visual-studio-debugging


【解决方案1】:

在 Visual Studio 2010 中(不确定具体是哪个版本),您可以使用“并发”选项创建新的分析会话。这应该检测到您正在寻找的死锁。然后,您可以分析单元测试以自动化您的多次运行。

找不到很多结果图片,但这里有一个示例
(来源:microsoft.com

【讨论】:

【解决方案2】:

另一个工具仅来自 Microsoft Research,您可以从 Codeplex - chesstool.codeplex.com 下载它。它支持.Net 4.0 库,下一个版本的国际象棋,但我不知道你能不能使用它。

【讨论】:

  • 我正在寻找一款与 Visual Studio 2015 一起使用但功能强大的产品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
相关资源
最近更新 更多