控制台替代kcachegrind?

pac*_*nga 20 linux console callgrind kcachegrind

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

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

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

osg*_*sgx 12

您可以valgrind --tool=callgrind使用命令行实用程序从callgrind输出文件(由其创建)获取基本信息和注释callgrind_annotate.(文档中的手册页 部分).对于由cachegrind(valgrind --tool=cachegrind)生成的文件,您可以使用cg_annotate(文档中的部分).这些实用程序默认使用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
Run Code Online (Sandbox Code Playgroud)

您还可以使用cachegrind指定缓存大小 --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64


dan*_*cek 5

使用SSHFS挂载您正在使用的远程目录(请参阅例如Ubuntu的SSHFS安装说明).

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


tst*_*ner 5

webgrind是一个用 PHP 编写的 Web 前端,用于解析 XDebug 的输出(使用与 callgrind 相同的格式)。


Tho*_*erk -9

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

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

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

  • 我认为你没有真正读过这个问题。我需要的是一个基于 ncurses 的 callgrind/cachegrind 前端。 (3认同)
  • 你错了,答案不是valgrind。Valgrind 只执行“运行并收集信息”步骤,但不执行 callgrind 和 cachegrind 的“查看结果” (3认同)