Kcachegrind确实是我最喜欢的工具,但是我不时缺少在远程服务器的终端(例如使用ssh)中运行它的功能。

我知道可以设置VNC或X服务器转发,但是当我需要简单的东西时却很笨拙。

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

最佳答案

您可以使用命令行实用程序 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可以调用本地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指定缓存大小

关于linux - kcachegrind的控制台替代品?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1383805/

10-11 16:43