控制台替代kcachegrind?

时间:2009-09-05 17:12:14

标签: linux console kcachegrind callgrind

Kcachegrind摇滚,这是我最喜欢的工具,但是我不时会错过在远程服务器上运行终端(例如使用ssh)的能力。

我知道可以设置VNC或X服务器转发但是在我需要简单的东西时它非常笨拙。

是否有任何kcachegrind控制台替代方案(例如基于ncurses)?

5 个答案:

答案 0 :(得分:12)

您可以使用命令行实用程序 valgrind --tool=callgrind 从callgrind输出文件(由callgrind_annotate创建)中获取基本信息和注释。 (manual page section in docs)。对于由cachegrind(valgrind --tool=cachegrind)生成的文件,您可以使用 cg_annotate section in docs)。这些实用程序默认使用valgrind本身构建。

另一种方法是将程序和缓存/ callgrind输出文件复制到您的计算机上,然后像往常一样使用本地kcachegrind进行分析。但是这样一来,如果你的机器没有unix而不是windows或你在不兼容的arch上运行(kcachegrind可以调用local objdump来获取有关程序的信息),这可能会很困难。

我还想向valgrind推荐命令行选项:

 valgrind --tool=cachegrind --branch-sim=yes 
 valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes

您还可以使用--I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64

为cachegrind指定缓存大小

答案 1 :(得分:5)

使用SSHFS挂载您正在使用的远程目录(请参阅例如SSHFS installation instructions for Ubuntu)。

然后ssh进入并运行valgrind --tool=callgrind,并在远程目录中使用您想要的任何选项。由于您在本地安装了该目录,因此使用KCacheGrind打开数据文件就像在本地调试一样容易。

答案 2 :(得分:4)

webgrind是一个用PHP编写的Web前端,用于解析XDebug的输出(使用与callgrind相同的格式),因此它应该与callgrind的输出一起工作(尽管我还没有测试过它)。

答案 3 :(得分:0)

在远程主机上运行Valgrind / Callgrind似乎是个不错的选择。或者,您可以将Valgrind或Callgrind的输出scp到您的PC并在其上运行KCachegrind。

如果您使用Emacs,您可以在远程主机上启动它,并按照here所示进行操作,这将为您提供valgrind工具的Emacs'ish前端。

答案 4 :(得分:-8)

kcachegrind在其帮助中声明它是cachegrind和callgrind的前端。

cachegrind和callgrind是valgrind最新版本(3.5)的一部分。所以,从http://valgrind.org/downloads/current.html#current下载valgrind并构建它。运行valgrind --help,它会向您展示如何使用callgrind功能。

有关更多信息,我需要知道您想要做什么。