【问题标题】:How to trace all events for a shell command using ftrace?如何使用 ftrace 跟踪 shell 命令的所有事件?
【发布时间】:2013-09-12 17:41:03
【问题描述】:

如何使用 ftrace 工具跟踪 cp file1 file2 之类的命令?

我想查看使用cp file1 file2 时调用的所有函数,但我不知道该怎么做。任何人都可以帮助我并在终端中写下执行此操作的确切命令吗?

【问题讨论】:

    标签: linux cp ftrace


    【解决方案1】:

    使用以下脚本,您可以使用它来跟踪您想要的任何命令。取自here,我稍作修改,您可以在/tmp/mytrace.txt 获得跟踪输出。用法示例:script.sh cp file1 file2

    #!/bin/bash     
    DPATH="/sys/kernel/debug/tracing"
    PID=$$
    TEMP="/tmp/mytrace.txt"
    ## Quick basic checks
    [ `id -u` -ne 0  ]  &&  { echo "needs to be root" ; exit 1; }  # check for root permissions
    [ -z $1 ] && { echo "needs process name as argument" ; exit 1; } # check for args to this function
    mount | grep -i debugfs &> /dev/null
    [ $? -ne 0 ] && { echo "debugfs not mounted, mount it first"; exit 1; } #checks for debugfs mount
    
    # flush existing trace data
    echo nop > $DPATH/current_tracer
    
    # set function tracer
    echo function_graph > $DPATH/current_tracer
    
    # enable the current tracer
    #echo 1 > $DPATH/tracing_on
    
    # write current process id to set_ftrace_pid file
    echo $PID > $DPATH/set_ftrace_pid
    
    # start the tracing
    echo 1 > $DPATH/tracing_on
    # execute the process
    exec $* > /dev/null 2>&1 &
    #echo "$*"
    
    `cat $DPATH/trace > $TEMP`
    
    echo 0 > $DPATH/tracing_on
    
    echo nop > $DPATH/current_tracer
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-11
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多