22

Kcachegrind 非常棒,它是我最喜欢的工具之一,但有时我会错过在远程服务器上的终端(例如使用 ssh)中运行它的能力。

我知道可以设置 VNC 或 X-server 转发,但是当我需要一些简单的东西时,它非常笨拙。

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

4

5 回答 5

14

valgrind --tool=callgrind您可以使用命令行实用程序从 callgrind 输出文件(由 创建)获取基本信息和注释callgrind_annotate。(文档中的手册页 部分)。对于由 cachegrind ( ) 生成的文件,您可以使用(文档中的部分)。这些实用程序默认使用 valgrind 本身构建。valgrind --tool=cachegrindcg_annotate

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

我还想向 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

于 2011-03-25T17:53:35.067 回答
5

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

于 2011-03-25T17:17:39.777 回答
5

使用SSHFS挂载您正在使用的远程目录(参见例如SSHFS 安装说明 for Ubuntu)。

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

于 2011-03-24T01:40:15.847 回答
0

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

如果您使用 Emacs,您可以在远程主机上启动它并按照此处所示操作,这将为您提供一个用于 valgrind 工具的 Emacs 前端。

于 2011-03-23T22:46:53.303 回答
-9

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

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

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

于 2009-12-24T13:46:06.757 回答