2010-03-15 42 views
5

我的主IDE是Visual Studio 2005,我有一个大型的C/C++项目。我对推荐使用什么线程分析工具感兴趣。我的意思是,我需要一个静态或动态的工具来帮助查找竞争状态,死锁等。你推荐什么线程分析工具?

到目前为止,我随便研究了以下内容: 1.英特尔线程检查器:我不认为它与VS 2005有关? 2. Valgrind/Helgrind:免费。 3. Coverity:如果我理解正确,这是一个昂贵的工具。

任何人有任何的这些或其他经验吗?我非常感谢任何建议。谢谢。

+0

什么操作系统将您的软件调试/有权访问? – 2010-03-15 02:43:10

+0

windows xp。并在较小程度上Linux。 – glutz78 2010-03-15 02:46:29

回答

2

新的“Concurrency Visualizer”在Visual Studio 2010中,我相信是lfor线程分析一个伟大的工具。

+1

不会帮助VS2005,虽然.... – 2010-03-15 03:35:53

1

你有没有看着CHESS

国际象棋是寻找和 再现并发 程序Heisenbugs的工具。 CHESS反复运行 并行测试,确保每个运行都采用不同的交叉。如果 交错导致错误,CHESS可以重现交错 以改善调试。 CHESS的 可用于托管和本地 程序。

+0

链接已损坏。 – 2012-04-27 06:03:42

+0

正确的链接,http://research.microsoft.com/en-us/projects/chess/ – 2014-11-21 14:08:30

1

英特尔VTune™可视化线程档案是非常好的。

0

的valgrind/racegrind只工作在Linux(helgrind得到退休)。但为v好,是免费

Coverity公司是伟大的,但昂贵的 - 我不知道那是不并发性的东西,但。我们将它运行在大型线程代码库上,并且它从不会选择并发性的东西。现在可能是因为我们的代码是完美的(如果只是),更可能是因为它没有在寻找它。但我会重复,这是一个伟大的静态分析仪

1

我正在使用Windows线程和同步库最初编写的大量线程化的应用程序。我将它移植到Linux/pthreads中,valgrind在检测和修复各种内存泄漏方面立即证明了其无价之宝。

我在使用DRD &的的valgrind套件的其余部分的过程,到目前为止,它一直惊人。这是非常容易使用,几乎没有学习曲线。不幸的是,如果您的软件在Linux上运行,这只能帮助您。