Kcachegrind很棒,它是我最喜欢的工具之一,然而,有时我会错过在远程服务器上的终端(例如使用ssh)运行它的能力。
我知道设置VNC或X-server转发是可能的,但当我需要一些简单的东西时,它是相当笨拙的。
是否有任何kcachegrind控制台替代方案(例如基于ncurses )?
发布于 2011-03-26 01:53:35
您可以使用命令行工具callgrind_annotate.从callgrind输出文件(由valgrind --tool=callgrind创建)中获取基本信息和注释(manual page section in docs)。对于由cg_annotate (valgrind --tool=cachegrind)生成的文件,可以使用cachegrind (section in docs)。默认情况下,这些实用程序是使用valgrind本身构建的。
另一种方法是将程序和缓存/callgrind输出文件复制到您的计算机,然后像往常一样使用本地kcachegrind分析它们。但是如果你的机器没有unix而只有windows,或者你运行在不兼容的objdump上(kcachegrind可以调用本地的unix来获取程序的信息),这种方法可能会很困难。
我还想向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的高速缓存大小
发布于 2011-03-24 09:40:16
使用SSHFS挂载您正在工作的远程目录(例如,参见SSHFS installation instructions for Ubuntu)。
然后,只需ssh,并在远程目录中使用您想要的任何选项运行valgrind --tool=callgrind。因为您已经在本地挂载了该目录,所以使用KCacheGrind打开数据文件就像在本地调试一样容易。
发布于 2011-03-26 01:17:40
webgrind是一个用PHP编写的web前端,它解析XDebug的输出(使用与callgrind相同的格式)。
https://stackoverflow.com/questions/1383805
复制相似问题