我正在使用 callgrind 来分析一小段代码。Callgrind 输出文件生成良好,它们的内容看起来不错,但我无法使用 kcachegrind 打开它们:我收到以下错误消息:
无法打开文件“callgrind.out.4953”。检查它是否存在并且您有足够的权限来阅读它。
我对它们所在的文件和目录拥有所有权限,但有同样的问题。此外,它还可以与同一工作区中的其他文件夹中的其他项目一起使用。我还指出,在这两种情况下,进程都会正确终止。
我正在使用 callgrind 来分析一小段代码。Callgrind 输出文件生成良好,它们的内容看起来不错,但我无法使用 kcachegrind 打开它们:我收到以下错误消息:
无法打开文件“callgrind.out.4953”。检查它是否存在并且您有足够的权限来阅读它。
我对它们所在的文件和目录拥有所有权限,但有同样的问题。此外,它还可以与同一工作区中的其他文件夹中的其他项目一起使用。我还指出,在这两种情况下,进程都会正确终止。
我最近向 kcachegrind 开发人员报告了一个症状完全相同的问题。当 callgrind 与很长的命令行一起使用时会触发该问题。这在 valgrind/callgrind 和 kcachegrind 的下一个版本中得到了修复。在 valgrind 端的提交日志下方找到。等待 valgrind 和 kcachegrind 的新版本,如果您的问题也是由于命令行太长,您可以编辑文件并截断 cmd: 行。如果您的问题不是 cmd 行的长度,那么我想您将需要使用 callgrind_annotate (如果可行)或进一步调查 kcachegrind 发现您的文件有问题的原因。
作者:weidendo 日期:2017 年 1 月 10 日星期二 20:21:21 新修订:16196
日志:为 callgrind 文件添加格式标记
KCachegrind 目前在实际加载文件之前使用快速格式检测,并在前 2kB 中检查以“events:”开头的行。这显然是脆弱的,正如 Philippe 的内部错误报告所示:在“events”行之前,Callgrind 在命令行中放置了一个“cmd:”行。如果这很长,则检测失败并且文件根本不会被加载。
虽然 KCachegrind 根本不需要这种快速的格式检查,但如果在某个时候支持多个输入格式过滤器,自动选择正确的过滤器会很有用。
此外,对于“文件”命令,对于文件管理器和桌面环境,具有检测文件格式的独特方法很重要。
现在为 callgrind 格式解决此问题还为时不晚。