使用ftrace跟踪内核函数

使用ftrace跟踪内核函数

1、内核配置项

在这里插入图片描述

linux内核已经支持很多种类treacer了, 本文演示的函数调用图跟踪器(function graph),

更多功能可以网上搜索一下,跟踪对象不同,但用法基本都一样。

2、测试脚本

#!/bin/bash
log1=/mnt/dom_data/database/ftrace_log1.log
log2=/mnt/dom_data/database/ftrace_log2.log
rm -rf $log1 $log2
curlog=$log1
touch $curlog
chmod 777 $curlog
cursize=0
maxsize=$(expr 500 \* 1024 \* 1024)
echo "ftrace log max szie: $maxsize"
################################################################
debugfs=/sys/kernel/debug/tracing
#
echo nop > $debugfs/current_tracer
echo 0 > $debugfs/tracing_on
echo > $debugfs/trace
#
echo function_graph > $debugfs/current_tracer
echo napi_gro_receive > $debugfs/set_graph_function
echo 1 > $debugfs/tracing_on
###############################################################
while [ 1 ]
	do
	cursize=`ls -l $curlog | awk '{print $5}'`
	if [ $cursize -gt $maxsize ]; then
		rm -rf $curlog
		if [ "$curlog" = "$log1" ]; then
			curlog=$log2
		else
			curlog=$log1
		fi
		cursize=0
		touch $curlog
		chmod 777 $curlog
		echo "ftrace log name: $curlog"
	else
		cat $debugfs/trace | head -n 1000 >> $curlog
		tm=`date`
		echo " @@@@@@@@@@@@@@@ tm: $tm" >> $curlog
		echo > $debugfs/trace
		sleep 0.5
	fi
done

3、跟踪图表

说明1:想要函数详细一点,可以编译内核是加上-g选项。

说明2:开启ftrace相关的驱动模块不用重新编译。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值