首页
›
Linux内核与驱动
›
150-内核分析工具
›
《SystemTap脚本调试内核内存泄漏的工程案例》
VIP10
本课程属于:150-内核分析工具
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
SystemTap脚本调试内核内存泄漏的工程案例
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
内存泄漏的危害 · 内核态与用户态泄漏的区别 · SystemTap在调试中的角色
课程导论
内存泄漏的危害
02
内核内存管理基础
伙伴系统 · slab分配器 · vmalloc区域
内核内存管理基础
伙伴系统
03
内存泄漏的典型模式
未释放的kmalloc · slab对象泄漏 · 引用计数泄漏
内存泄漏的典型模…
kmalloc
04
SystemTap环境搭建
内核版本要求 · 安装SystemTap · 安装内核调试符号(kernel-de…
SystemTap
环境搭建
05
SystemTap脚本基础
探针(probe) · 句柄(handler) · 全局变量
SystemTap
脚本基础
06
探测内存分配与释放
探针点kmalloc/kfree · 跟踪分配大小与调用栈
探测内存分配
释放
07
编写第一个泄漏检测脚本
统计分配与释放次数 · 计算差值
编写第一个泄漏检…
统计分配
08
使用关联数组跟踪分配者
以调用栈为键 · 分配次数为值
使用关联数组跟踪…
以调用栈为键
09
处理并发与锁
使用自旋锁保护全局数据结构 · 避免脚本竞争条件
处理并发
使用自旋锁保护全…
10
过滤与聚合
按分配大小范围过滤 · 按模块名聚合泄漏数据
过滤
聚合
11
探测slab分配器
探针点kmem_cache_allo… · 跟踪特定缓存
slab
探测
12
探测页面级分配
探针点__alloc_pages_n… · 跟踪阶数(order)
探测页面级分配
alloc
13
探测引用计数泄漏
探针点get/put函数 · 跟踪kobject/网络套接字引用
探测引用计数泄漏
get/put
14
实战案例1
检测驱动模块的kmalloc泄漏——… · 运行 · 分析输出
实战案例1
kmalloc
15
实战案例2
检测文件系统slab缓存泄漏——定位… · 跟踪对象生命周期
实战案例2
slab
16
实战案例3
检测网络协议栈sk_buff泄漏——…
实战案例3
sk
17
实战案例4
检测内存映射(mmap)泄漏——跟踪…
实战案例4
mmap
18
使用时间戳与时间窗口
记录泄漏发生的时间点 · 分析泄漏速率
使用时间戳
时间窗口
19
输出格式化与日志管理
将结果输出到文件 · 使用printf格式化 · 添加时间戳
输出格式化
日志管理
20
脚本性能优化
减少探针开销 · 使用聚合函数 · 避免频繁打印
脚本性能优化
减少探针开销
21
与内核其他工具结合
配合ftrace · perf · meminfo验证泄漏
内核其他工具结合
ftrace
22
调试符号与源码定位
利用debuginfo获取源码行号 · 定位泄漏函数
调试符号
源码定位
23
处理假阳性
区分正常增长与泄漏 · 设置阈值 · 使用白名单
处理假阳性
区分正常增长
24
自动化与持续监控
将SystemTap脚本集成到监控系… · 设置告警
自动化
持续监控
25
内核内存泄漏修复策略
补丁编写 · 回退测试 · 提交上游
内核内存泄漏修复…
补丁编写
26
高级技巧
使用字符串键 · 动态过滤 · 多探针协同
高级技巧
使用字符串键
27
常见错误与调试
脚本语法错误 · 探针不命中 · 数据溢出
常见错误
调试
28
SystemTap安全与限制
stap权限 · 内核锁定 · 生产环境注意事项
SystemTap
安全
29
案例复盘
从真实内核Bug中学习——一个ext…
案例复盘
Bug
30
课程总结与展望
SystemTap未来 · eBPF对比 · 持续学习路径
课程总结
SystemTap
所属VIP或分类
同VIP:dmesg日志时间戳配置与内核启动阶段故障排查
同VIP:eBPF程序在内核文件系统IO路径中的监控实践
同VIP:kprobe与jprobe联合调试内核模块加载过程