Kcachegrind摇滚,这是我最喜欢的工具,但是我不时会错过在远程服务器上运行终端(例如使用ssh)的能力.
我知道可以设置VNC或X服务器转发,但是在我需要简单的东西时它非常笨拙.
是否有任何kcachegrind控制台替代(例如基于ncurses)?
您可以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
您还可以使用cachegrind指定缓存大小 --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64
使用SSHFS挂载您正在使用的远程目录(请参阅例如Ubuntu的SSHFS安装说明).
然后ssh in并valgrind --tool=callgrind
在远程目录中运行您想要的任何选项.由于您在本地安装了该目录,因此使用KCacheGrind打开数据文件就像在本地调试一样容易.