首页
›
Linux内核与驱动
›
025-Linux内核驱动调试
›
《Linux内核模块加载卸载与资源生命周期调试》
VIP10
本课程属于:025-Linux内核驱动调试
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux内核模块加载卸载与资源生命周期调试
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
内核模块生命周期与init/exit…
课程导论
init/exit
02
开发环境搭建
交叉编译工具链 · 内核源码树配置与模块编译基础
开发环境搭建
交叉编译工具链
03
最小内核模块
编写一个只包含init和exit的空…
最小内核模块
init
04
模块加载与卸载命令
insmod · rmmod · modprobe的底层原理与日志查看
模块加载
卸载命令
05
init函数返回非零值
错误码含义与导致模块加载失败的根本原…
init
函数返回非零值
06
exit函数未执行
模块卸载时资源泄漏的典型场景与检测方…
exit
函数未执行
07
printk调试法
不同日志级别(KERN_EMERG到…
printk
调试法
08
动态调试(dynamic debug)
在init/exit中动态开启/关闭…
dynamic
debug
09
模块参数传递
module_param与init/…
模块参数传递
module
10
内存分配失败模拟
在init中故意制造kmalloc失…
内存分配失败模拟
init
11
符号依赖与未定义符号
EXPORT_SYMBOL在init…
符号依赖
未定义符号
12
设备号注册失败
alloc_chrdev_regio…
设备号注册失败
alloc
13
procfs与sysfs创建失败
init中创建条目失败时的回滚策略
procfs
sysfs
14
定时器与工作队列初始化
init中初始化但exit中忘记注销…
定时器
工作队列初始化
15
互斥锁与自旋锁初始化
静态与动态初始化在init/exit…
互斥锁
自旋锁初始化
16
中断注册失败
request_irq在init中的…
断注册失败
request
17
文件操作结构体注册
misc_register与cdev…
文件操作结构体注…
misc
18
内核线程创建与销毁
kthread_run在init中失… · kthread_stop在exit中…
内核线程创建
销毁
19
引用计数与模块自锁
try_module_get/mod…
引用计数
模块自锁
20
init与exit的执行上下文
进程上下文与中断上下文的限制与陷阱
init
exit
21
使用GDB调试内核模块
加载模块符号表 · 设置断点在init函数入口
GDB
使用
22
kprobe与jprobe动态插桩
在init/exit函数入口/出口插…
kprobe
jprobe
23
ftrace跟踪init/exit调用
使用function_graph跟踪…
ftrace
init/exit
24
kmemleak检测内存泄漏
在init/exit中检测未释放的内…
kmemleak
检测内存泄漏
25
lockdep检测死锁
init/exit中锁顺序不一致导致…
lockdep
检测死锁
26
模块堆栈溢出
init函数中局部变量过大导致栈溢出…
模块堆栈溢出
init
27
init函数执行超时
使用延迟工作队列模拟超时与watch…
init
函数执行超时
28
多模块依赖加载顺序
init/exit中依赖模块未加载时…
多模块依赖加载顺…
init/exit
29
内核崩溃(oops)分析
从oops信息定位init/exit…
oops
内核崩溃
30
综合实战
构建一个包含多种故障的模块 · 使用所学方法逐一排查修复
综合实战
构建一个包含多种…
所属VIP或分类
同VIP:Linux-platform驱动开发调试与设备树接口设计
同VIP:Linux内核调试与性能优化实战:驱动篇全面解析
同VIP:Linux驱动并发竞态调试:自旋锁与互斥锁死锁实战分析