ftrace工具学习笔记

ftrace是一个功能强大的Linux内核跟踪工具,可用于分析内核的行为和性能问题。它可以用来收集各种内核跟踪数据,如函数调用、内存分配、中断处理等。以下是ftrace的一些主要特点和用法:

ftrace是内核自带的跟踪工具,因此无需安装。要启用ftrace,需要在内核编译时启用CONFIG_FUNCTION_TRACER配置选项。可以使用以下命令检查内核是否支持ftrace:

cat /boot/config-$(uname -r) | grep CONFIG_FUNCTION_TRACE

如果输出结果包含"=y"或"=m",则表示内核支持ftrace。

在这里插入图片描述

在/sys/kernel/debug/tracing目录下提供了各种跟踪器和事件:

在这里插入图片描述

在这里插入图片描述

可用的ftrace跟踪器:

在这里插入图片描述

在这里插入图片描述

使用方法:

cd /sys/kernel/debug/tracing
/* 关闭function-trace可用减少一些延迟:echo 0 > options/function-trace可以设置要跟踪的进程:cat set_ftrace_pid					查看当前指定跟踪的进程echo 进程的PID > set_ftrace_pid	  指定要跟踪的进程cat set_ftrace_pid					查看是否指定成功
*/
echo 跟踪器 > current_tracer
echo 1 > tracing_on
// ...等待一会
echo 0 > tracing_on
cat trace

动态ftrace:

若在配置内核时打开了CONFIG_DYNAMIC_FTRACE选项,就可以使用动态ftrace功能

set_ftrace_filter:设置要跟踪的 函数

set_ftrace_notrace:指定不要跟踪的函数

available_filter_functions 文件可以列出当前系统支持的所有函数

“>”表示覆盖过滤器的内容,“>>”表示把新函数添加到过滤器中,但不会覆盖

eg:通过以下代码可以只关注sys_nanosleep()和hrtimer_interrupt()这两个函数:

cd /sys/kernel/debug/tracing
echo sys_nanosleep hrtimer_interrupt > set_ftrace_filter
echo function > current_tracer
echo 1 > tracing_on
usleep 1
echo 0 > tracing_on
cat trace

事件跟踪:

要在available_events文件中查找该跟踪点是否存在,然后把想要跟踪的事件添加到set_event文件中即可。eg:

cd /sys/kernel/debug/tracing
cat available_events | grep sched_stat_runtime		// 查询系统是否支持跟踪点
echo sched:sched_stat_runtime > set_event			// 跟踪找个事件
echo function > current_tracer
echo 1 > tracing_on
// ...等待一会
echo 0 > tracing_on
cat trace

可以使用类似于C语言的表达式对事件进行过滤,对于数字域支持“==、!=、<、<=、>、>=、&”操作符,对于字符串域支持“==、!=、~”操作符。eg:

cd /sys/kernel/debug/tracing/events/sched/sched_stat_runtime
echo 'comm ~ "sh*"' > filter 		//跟踪以sh开头的所有进程
echo  'pid == 725' > filter			//跟踪进程PID为725的进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/454224.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉搜索树题目:二叉搜索树的最近公共祖先

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉搜索树的最近公共祖先 出处&#xff1a;235. 二叉搜索树的最近公共祖先 难度 3 级 题目描述 要求 给定一个…

CSP-202209-1-如此编码

CSP-202209-1-如此编码 解题思路 核心逻辑在于利用arr1和arr2两个数组来逐步计算出每个c[i]被使用的次数&#xff0c;这些次数即为题目中的b[i]。arr1[i] m % c[i]用于计算在用c[i]整除m后的余数&#xff0c;这个余数表示在当前级别i上&#xff0c;m还需要多少才能被c[i]整除…

Linux--- vim详解

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 “学如逆水行舟&#xff0…

如何配置SSH实现无公网ip远程连接访问Deepin操作系统

&#x1f4d1;前言 本文主要是配置SSH实现无公网ip远程连接访问Deepin操作系统的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️** &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &…

CAN通信----(创芯科技)CAN分析仪----转CANTest使用

点击进入官方链接进行下载创芯科技 CAN分析仪资料包&#xff1a; 创芯科技的官网&#xff1a;https://m.zhcxgd.com/ 我使用的是至尊版红色带OBD转接头的&#xff1a; 所有下图是我选择…

Qt可视化大屏布局

科技大屏现在非常流行&#xff0c;这里分享一下某个项目的大屏布局&#xff08;忘了源码是哪个博主的了&#xff09; 展示 这个界面整体是垂直布局&#xff0c;分为两个部分&#xff0c;标题是一个部分&#xff0c;然后下面的整体是一个layout布局&#xff0c;为另外一部分。 l…

PE文件结构 安全分析与恶意软件研究 逆向工程 优化与性能调整 兼容性与移植性分析

了解PE&#xff08;Portable Executable&#xff0c;可移植可执行文件&#xff09;文件结构有多个用途 对于软件开发、安全分析、逆向工程等领域的专业人士来说尤其重要。PE文件格式是Windows操作系统中用于可执行文件、动态链接库&#xff08;DLLs&#xff09;、以及其他文件…

随身wifi刷机

工具密码&#xff1a;f5ft 刷机包 MiKo备份&#xff08;有BIN包的不用&#xff0c;没有bin的去下载就砖包&#xff09; 需要进9008模式&#xff0c;用牙签插着孔里的按钮查如电脑usb接口&#xff0c;看到 出现端口&#xff0c;有个9008的就算成功进入&#xff0c;安装替换mik…

0基础学习VR全景平台篇第141篇:如何制作卫星航拍全景

大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 很多人都看过或者拍摄过航拍全景&#xff0c;其效果相比于普通的地拍的确有着更加震撼的拍摄效果&#xff0c;但是受限于无人机高度&#xff0c;以及禁飞区等等限制&#xff0c;导致很多大场景无法展示完全&a…

Docker 搭建mysql 集群(二)

PXC方案 很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点&#xff0c;数据双向同步的&#xff08;在任何节点上都可以同时读写&#xff09; 创建MySQL PXC集群 1 安装PXC镜像 docker pull percona/percona-xtradb-cluster:5.7.21 2 为PXC镜像改名 docker tag pe…

【240121】桂林电子科技大学—调剂信息

桂林电子科技大学 学校层级&#xff1a;双非 调剂专业&#xff1a;081000 信息与通信工程 发布时间&#xff1a;2024.1.21 发布来源&#xff1a;网络发布 背景&#xff1a;欢迎广大08工学专业考生调剂进我的课题组&#xff0c;电子信息专业&#xff0c;也欢迎往届同学调剂…

哪些行业能考PMP?给个人带来什么价值?

目前项目管理的已在国际航天、电子、通讯、计算机、软件开发、建筑、制药、金融等行业甚至政府机关内广泛应用。 一、PMP学员细分&行业应用 在充分竞争的市场环境下&#xff0c;企业之间的竞争&#xff0c;就是项目管理成熟度之间的竞争&#xff0c;越来越多的企业认识到…