ftrace 进程cmd 跟踪脚本

#!/bin/bash

DPATH="/sys/kernel/debug/tracing"

## shell pid
PID=$$

[ `id -u` -ne 0 ] && { echo "needs to be root" ; exit 1; } 

[ -z $1 ] && { echo "needs process name as argument" ; exit 1; } 

mount | grep -i debugfs &> /dev/null
[ $? -ne 0 ] && { echo "debugfs not mounted, mount it first"; exit 1; } 


# clear existing trace data
echo nop > $DPATH/current_tracer

# set function_graph tracer
echo function_graph > $DPATH/current_tracer

# write current process id to set_ftrace_pid file next will trace 
echo $PID > $DPATH/set_ftrace_pid

# start the tracing
echo 1 > $DPATH/tracing_on

# execute the process
# $* all parameter list
exec $*

# stop the tracing
echo 0 > tracing_on

 上述为ftrace 某一个process的基本脚本 
./trace-process.sh   ifconfig eth20  down   
就可以看到 ifconfig eth20 down 时  内核运行函数 调用 

from: https://www.codenong.com/cs106475776/

posted @ 2021-02-26 17:23  codestacklinuxer  阅读(170)  评论(0编辑  收藏  举报