【问题标题】:Unable to trace syscall via ftrace无法通过 ftrace 跟踪系统调用
【发布时间】:2016-11-13 16:42:12
【问题描述】:

我正在使用 ftrace 来跟踪内核中的 sys_read 调用。使用函数或图形跟踪器,将 set_ftrace_filter 设置为 sys_write 失败

# echo sys_read > tracing/set_ftrace_filter                                                                                                                                            
-sh: echo: write error: Invalid argument

这是我的 ftrace kconfigs

# zcat /proc/config.gz | grep -i ftrace
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_FTRACE=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set        

我在 available_filter_functions 中也没有 sys_read 或 sys_write。我在 arm 平台上使用 3.14 内核。请帮忙。

【问题讨论】:

    标签: linux kernel system-calls ftrace


    【解决方案1】:

    如果你还没有想到

    # egrep -i "^sys_read$|^sys_write$" tracing/available_filter_functions
    SyS_read
    SyS_write
    

    【讨论】:

    • 是的,想通了。如果我们为系统调用条目启用事件跟踪点,也可以在跟踪中看到 sys_read 和 sys_write。例如对于 sys_read echo 1 > tracing/events/syscalls/sys_enter_read/enable
    猜你喜欢
    • 2012-04-03
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2011-08-02
    • 2012-04-03
    • 2011-04-20
    相关资源
    最近更新 更多