开发者

What threading analysis tools do you recommend? [closed]

开发者 https://www.devze.com 2022-12-23 11:25 出处:网络
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references,or expertise, but this question will likely solicit debate, a
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 11 years ago.

My primary IDE is Visual Studio 2005 and I have a large C/C++ project. I'm interested in what thread analysis tools are recommende开发者_如何学JAVAd. By that I mean, I want a tool, static or dynamic, to help find race conditions, deadlocks, and the like.

So far I've casually researched the following: 1. Intel Thread Checker: I don't believe that it ties into VS 2005? 2. Valgrind/Helgrind: free. 3. Coverity: this is a costly tool if i understand correctly.

Anyone have experience with any of these or other? I'd much appreciate any advice. Thank you.


The new 'Concurrency Visualizer' in Visual Studio 2010 I believe is a great tool lfor threading analysis.


Check Intel Parallel Studio. It supports VS2005.


Intel's VTune Thread Profiler is very nice.


Relacy Race Detector http://www.codeproject.com/KB/interviews/Interview-Dmitriy-Vyukov.aspx


I am working on a heavily threaded application which was written originally using Windows thread and synchronization libraries. I ported it to Linux/pthreads and valgrind proved immediately invaluable in detecting and fixing various memory leaks.

I'm in the process of using DRD & the rest of the valgrind suite, so far it's been amazing. It was very easy to use with virtually no learning curve. Unfortunately this only helps you if your software runs on Linux.


Have you looked at CHESS?:

CHESS is a tool for finding and reproducing Heisenbugs in concurrent programs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the interleaving for improved debugging. CHESS is available for both managed and native programs.


valgrind / racegrind only work on linux (helgrind got retired). but is v good and is free

coverity is great but expensive - I dont know that is does concurrency stuff though. We run it on out v large heavily threaded codebase and it never picks up concurrency stuff. Now it could be because our code is perfect (ha, if only), more likely its because its not looking for it. But I will repeat that is a great static analyser

0

精彩评论

暂无评论...
验证码 换一张
取 消