【问题标题】:How to exclude some calls in strace?如何排除 strace 中的一些调用?
【发布时间】:2016-06-25 12:06:48
【问题描述】:

我想用 strace 跟踪系统调用。读写太多,所以我想排除它们。

这是我的测试:

strace -e trace=!read ls

我的电脑 (Ubuntu 14) 无法运行此命令。错误消息是!open: event not found。我仔细阅读了这个人,我不明白为什么它失败了。

【问题讨论】:

    标签: strace


    【解决方案1】:

    您的 shell 将 ! 解释为特殊符号,因此无法运行该命令。使用引号:

    strace -e 'trace=!read' ls
    

    或者用\转义:

    strace -e trace=\!read ls
    

    【讨论】:

    • strace 过滤器是否忽略了其他系统调用,或者开销是否相同?
    • 开销将与 strace 仍然停止每个系统调用的跟踪进程相同。不过,正在使用 seccomp-bpf 来改变这一点(请参阅 strace 邮件列表)。
    • 忽略多个系统调用:strace -e 'trace=!read,write' ls
    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2014-04-08
    • 2019-05-12
    • 2018-08-20
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多