C ++分析工具的建议

时间:2010-11-04 10:23:18

标签: c++ code-analysis

有人可以推荐任何用于C ++代码编译和运行时分析的工具吗?我日复一日地被要求识别在非常大的代码库中使用某些函数重载的位置。

我当前的方法包括(a)使用grep / find进行文本搜索和(b)欺骗包含文件以注释掉有问题的重载,并完全重新编译从而破坏使用重载的构建。你可以想象这非常耗时。

顺便说一句,我是在Red Hat Linux平台上这样做的。

6 个答案:

答案 0 :(得分:9)

我使用了gprof和名为gprof2dot的脚本的组合,它为您提供了一个调用图,显示了每种方法花费了多少时间。

请参阅gprof上的这篇文章。另请查看:

Optimizing C/C++ programs using the GProf profiler

这是一个示例调用图,显示每个方法花费的时间(取自gprof2dot页面):

alt text

答案 1 :(得分:3)

我过去使用过Intels VTune,发现它非常有用。

http://software.intel.com/en-us/articles/intel-vtune/

答案 2 :(得分:3)

看看valgrind

答案 3 :(得分:3)

您可以使用Callgrind。现在它是valgrind项目的一部分。

它有非常好的GUI来查看结果:KCacheGrind

两者都可用于您的发行版。

答案 4 :(得分:1)

我第二次@RA的英特尔VTune推荐值得关注。不要在gprof嗤之以鼻,它无处不在,是一个良好的开端。您可以从调试器中获取所需的信息 - 这是什么?

如果您告诉我们您正在使用哪种编译器,我们可能会告诉您它有哪些功能可以帮助您。

答案 5 :(得分:1)

还有TAU,虽然配置起来很麻烦,但功能非常强大。