kcachegrind 无法打开 callgrind 文件

Posted

技术标签:

【中文标题】kcachegrind 无法打开 callgrind 文件【英文标题】:kcachegrind unable to open callgrind file 【发布时间】:2017-05-26 02:40:41 【问题描述】:

我正在使用 callgrind 来分析一小段代码。 Callgrind 输出文件生成良好,它们的内容看起来不错,但我无法使用 kcachegrind 打开它们:我收到以下错误消息:

无法打开文件“callgrind.out.4953”。检查它是否存在并且你有足够的权限来阅读它。

我对它们所在的文件和目录拥有所有权限,但问题相同。此外,它也适用于同一工作区的另一个文件夹中的另一个项目。我还明确指出,在这两种情况下进程都会正确终止。

【问题讨论】:

【参考方案1】:

我最近向 kcachegrind 开发人员报告了一个具有完全相同症状的问题。当 callgrind 与很长的命令行一起使用时会触发该问题。这在 valgrind/callgrind 和 kcachegrind 的下一个版本中得到了修复。 在 valgrind 端的提交日志下方找到。 如果您有问题,请等待 valgrind 和 kcachegrind 的新版本 也是由于命令行太长,您可以编辑文件并截断​​ cmd: 行。 如果您的问题不是 cmd 行的长度,那么我想您将需要使用 callgrind_annotate (如果可行)或进一步调查 kcachegrind 发现您的文件有问题的原因。

作者:weidendo 日期:2017 年 1 月 10 日星期二 20:21:21 新修订:16196

日志:为 callgrind 文件添加格式标记

KCachegrind 目前在实际使用之前使用快速格式检测 加载文件,并检查以“事件:”开头的行 第一个 2kB。这显然是脆弱的,如内部所示 Philippe 的错误报告:在“事件”行之前,Callgrind 放置了一个 "cmd:" 行与命令行。如果这个时间很长,检测 失败并且文件根本没有加载。

虽然 KCachegrind 不需要在 总而言之,如果多个输入格式过滤器在 某个点,自动选择正确的过滤器。

此外,对于“文件”命令,对于文件管理器和桌面 环境中,具有检测文件格式的独特方法是 很重要。

现在为 callgrind 格式解决这个问题还为时不晚。

【讨论】:

实际上就是这样:我的程序参数中有很多文件。谢谢。 phd,有哪些版本的 kcachegrind/valgrind 修复? osgx :目前,这些版本尚未发布。您必须从 svn 和 git 存储库构建 valgrind 和 kcachegrind。

以上是关于kcachegrind 无法打开 callgrind 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 KCacheGrind 聚合 PHP XDebug 数据

kcachegrind:如何绘制完整的调用图?

Kcachegrind 覆盖列表项限制为 499

kcachegrind 难以链接 php xdebug 调用

如何回到 kcachegrind 的起点?

KCachegrind 解释混乱