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