VS2010中有没有针对C#.NET的并发调试工具
在我目前正在进行的项目中,我们有未知数量的闪烁测试,这些测试以不同的速度失败(从每隔一次运行到每 5000 次运行一次),这让我们相信我们有一些严重的 Heisenbugs 需要解决。大多数情况下,在代码中包含跟踪语句会改变时序,足以消除这些错误,或者至少使它们发生的频率降低,但显然这不是有效的错误修复。
我们想知道是否有任何类似于 CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) 的工具可以在 Visual Studio 2010 中工作/与 Visual Studio 2010 一起使用,以对应用程序进行压力测试并检测潜在的竞争条件和僵局?
On the project I am working on at the moment we have an unknown number of flickering tests which fail at varying rates (anywhere from every-other run to once every 5000 runs) which has led us to believe we have some serious Heisenbugs to resolve. Most of the time including trace statements in the code change the timing enough to eliminate these errors, or at least make them occur less often, but obviously this is not a valid bug fix.
We are wondering if there are any tools similair to CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) that work in/with Visual Studio 2010 to stress test applications and detect potential race conditions and deadlocks?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Visual Studio 2010(不确定具体是哪个版本)中,您可以使用“并发”选项创建新的分析会话。这应该可以检测到您正在寻找的死锁。然后,您可以分析单元测试以自动执行多次运行。
找不到很多结果图像,但这里有一个示例
(来源:microsoft.com)
Within Visual Studio 2010 (not sure which editions exactly) you can create a new profiling session with the "Concurrency" option. This should detect the deadlocks you're looking for. You can then profile a unit test to automate your many runs.
Couldn't find many images of the results but here's an example
(source: microsoft.com)
另一个工具仅来自 Microsoft Research,您可以从 Codeplex - chesstool.codeplex.com 下载它。它支持 .Net 4.0 库,即 Chess 的下一个版本,但我不知道你是否能够使用它。
Another tool is from Microsoft Research only, you can download it from Codeplex - chesstool.codeplex.com. It supports .Net 4.0 libraries, next version of Chess, but I don't know you are able to use it.