🐧 ftrace 实战
30章
⚡ Linux内核调试神器 · 从入门到进阶
🎯 动态追踪
ftrace
🧩 30个实验
动手学
🚀 内核&用户态
全覆盖
📘
01
ftrace初探
什么是ftrace?对比perf、systemtap,为什么需要它?
02
环境准备
内核配置(CONFIG_DYNAMIC_FTRACE)、编译、挂载tracefs
03
ftrace核心概念
tracer, trace event, filter, trigger 关系图解
04
第一个ftrace实验
查看available_tracers,切换current_tracer,查看trace
05
function tracer实战
追踪函数调用,set_ftrace_filter / set_ftrace_notrace
06
function_graph tracer
可视化调用图,分析执行时间,定位性能瓶颈
07
trace event基础
tracepoint概念,启用/禁用event,查看列表
08
trace event过滤
filter文件条件过滤,只捕获关注的事件
09
trace event格式化
自定义输出格式,添加额外字段
10
kprobe事件
动态内核探测,不修改代码插入探测点
11
kretprobe事件
探测函数返回值,分析执行结果
12
uprobe事件
用户空间动态探测,追踪用户态程序
13
trigger机制入门
trigger类型:enable_event, disable_event, stacktrace, snapshot
14
trigger实战
条件触发、堆栈追踪、事件关联分析
15
trace_marker
用户空间插入自定义标记,与内核事件同步
16
trace_printk
内核轻量级打印,快速调试利器
17
trace_seq
内核中构建复杂trace输出的API
18
trace环形缓冲区
buffer原理,调整大小,避免数据丢失
19
trace_snapshot
捕获系统瞬间状态,分析临界区问题
20
trace_instance
独立trace实例,隔离调试任务
21
trace clock
local/global/counter时钟源,时间同步
22
trace cmdline
追踪进程命令行,关联进程与事件
23
trace_print
trace输出中添加自定义打印信息
24
trace_marker_raw
二进制格式写入marker,提升性能
25
trace histogram
直方图分析事件分布
26
trace synthetic events
合成事件,组合多个原始事件分析
27
trace error log
解读错误日志,排查配置问题
28
ftrace与perf结合
perf采集ftrace数据,高级性能分析
29
实战案例1:调度延迟
分析内核调度延迟,定位进程阻塞原因
30
实战案例2:中断处理
追踪驱动中断流程,解决中断丢失