【发布时间】:2021-03-29 09:17:35
【问题描述】:
我正在尝试使用 perf 跟踪已删除的文件。我知道 eBPF / SystemTap 更适合这里,但我在工具选择(ARM)的平台上受到限制。
我就是这样记录的
perf record -e 'syscalls:sys_enter_unlinkat'
用于报告
perf script -F +pid,+tid,-cpu
rm 15746/15746 7942.646974: syscalls:sys_enter_unlinkat: dfd: 0xffffff9c, pathname: 0x55a7960e6490, flag: 0x00000000
rm 15748/15748 7944.626120: syscalls:sys_enter_unlinkat: dfd: 0xffffff9c, pathname: 0x55dea122f490, flag: 0x00000000
rm 15750/15750 7947.111921: syscalls:sys_enter_unlinkat: dfd: 0xffffff9c, pathname: 0x55a515165490, flag: 0x00000000
如何获得类似于 strace 输出的 pathname 的字符串版本。
我还需要删除文件的进程的uid。
【问题讨论】:
-
这是一个关于 Linux 实用程序的问题,与代码、编程或软件开发无关。因此,这不是一个 SO 问题。
-
@Clifford:对我来说似乎还可以;
perf script基本上是一种脚本语言,我认为。 (而且,虽然这些因素单独不够用,但通常只有嵌入式开发人员会以这种方式使用此工具;在普通系统上,您只需使用strace。我并不是说嵌入式开发人员所做的一切都会自动成为 SO 问题,但由于有充分的理由将其视为编程问题,这也是让它留在 SO 上而不是迁移到超级用户的理由。成为话题。) -
@PeterCordes :好的 - 反对撤回。