我的主要IDE是Visual Studio 2005,我有一个大型的C / C ++项目。我对推荐的线程分析工具感兴趣。我的意思是,我想要一个静态或动态的工具来帮助找到竞争条件,死锁等。
到目前为止,我随便研究了以下内容: 1.英特尔线程检查器:我不相信它与VS 2005有关吗? 2. Valgrind / Helgrind:免费。 3.封面:如果我理解正确,这是一个昂贵的工具。
任何人都有这些或其他任何经验吗?我非常感谢任何建议。谢谢。
答案 0 :(得分:2)
Visual Studio 2010中新的“Concurrency Visualizer”我认为是一个很好的线程分析工具。
答案 1 :(得分:2)
检查英特尔Parallel Studio。它支持VS2005。
答案 2 :(得分:1)
你看过CHESS了吗?:
CHESS是一种寻找和发现的工具 同时复制Heisenbugs 程式。 CHESS反复跑了一个 并发测试确保每一个 run需要不同的交错。如果 交错会导致错误, CHESS可以重现交错 用于改进调试。 CHESS是 可用于托管和本机 程序
答案 3 :(得分:1)
英特尔的VTune Thread Profiler非常好。
答案 4 :(得分:1)
Relacy Race Detector http://www.codeproject.com/KB/interviews/Interview-Dmitriy-Vyukov.aspx
答案 5 :(得分:1)
我正在研究一个最初使用Windows线程和同步库编写的高线程应用程序。我将它移植到Linux / pthreads并且valgrind在检测和修复各种内存泄漏方面立即被证明是非常宝贵的。
我正在使用DRD&其余的valgrind套房,到目前为止一直很棒。它几乎没有学习曲线,非常容易使用。不幸的是,如果您的软件在Linux上运行,这只会对您有帮助。
答案 6 :(得分:0)
valgrind / racegrind只适用于linux(helgrind退役)。但是v很好并且是免费的
覆盖性很好但很昂贵 - 我不知道这是并发的东西。我们在大型高度线程化的代码库上运行它,它从不接受并发性的东西。现在可能是因为我们的代码是完美的(ha,如果只是),更可能是因为它没有找到它。但我要重申,这是一个很棒的静态分析器