linux 使用perf记录带参数的系统调用

axr492tv  于 2023-05-06  发布在  Linux
关注(0)|答案(2)|浏览(161)

我想记录系统上正在调用的所有系统调用。我知道我可以使用各种跟踪工具来完成这个任务,但是我想使用perf。
我使用以下命令记录了系统调用:
perf record -e 'syscalls:sys_*' -a
我使用perf recordperf script查看了输出,但无法解释输出。我需要系统调用的列表沿着传递给它们的参数。就像这样:

  • (syscall,arg1,arg2,..)
  • (syscall,arg1,arg2,..)
  • 等等

谁能帮我用perf得到想要的输出?

gywdnpxw

gywdnpxw1#

通过使用perf trace -i perf.data可以获得一些改进的输出,但是您需要稍微不同的调用来记录。

# to record
$ perf record -e raw_syscalls:* /bin/true
# to report:
$ perf trace -i perf.data

输出比perf script给你的要好,但仍然很难理解。strace计算出了更多的东西,但很难以编程方式处理输出。

ni65a41a

ni65a41a2#

perf是一个分析器,为什么要记录参数?
您正在寻找的工具是systemtap。

相关问题