在Linux上用C ++开发一个简单易用的分析器是什么?
我需要分析一些在Linux上运行C ++的代码。 你们可以推荐一些configuration文件吗?
使用gprof。
用-pg
标志进行编译(我认为(但不是很确定)你必须优化),然后使用gprof来分析你的可执行文件然后生成的gmon.out文件。
例如:
gcc -pg -o whatever whatever.c ./whatever gprof whatever gmon.out
与g ++和cpp一样的东西。
valgrind是一个知名的linux分析器
从RotateRight( http://www.rotateright.com )放大是我一直在使用。 它具有function的蝴蝶视图,你可以双击任何函数来潜入源代码或asm代码。 用debugging信息(-g)构build来查看源代码,但是仍然应该构build和configuration优化的代码。
我是Oprofile的粉丝。 它涉及到安装一个内核模块,并有一些学习曲线,但它是相当强大的,非常适合优化程序/程序,而无需debugging符号。
Vtune是英特尔另一个非常强大的分析器。 我相信Linux版本是免费的非商业软件。
还有dfa提出的Valgrind工具套件。 Callgrind可能是你最感兴趣的。Cachegrind(其function集是Callgrind的一个子集)和Massif也很有趣,但是我对后者没有经验。
看看KCacheGrind ,这是一个valgrind的graphics前端,使它很容易使用它。
谷歌也有一个不错的分析器作为谷歌perftools的一部分 – 这是包括在Debian / Ubuntu和可能其他发行版。
gprof是用于分析的标准gnu工具。
看看Sysprof 。 你的发行很可能已经可用了。
请注意,如果应用程序使用帧指针进行编译,则所有提到的分析器工作效果最佳。 也就是说,你应该在gcc命令行上使用-fno-omit-frame-pointer。
这是我用的。