首页
›
Linux内核与驱动
›
141-Linux内核异常定位
›
《Linux内核异常场景中寄存器现场恢复与关键值分析》
VIP10
本课程属于:141-Linux内核异常定位
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux内核异常场景中寄存器现场恢复与关键值分析
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
异常概念总览
Linux内核异常分类(中断 · 陷阱 · 故障
异常概念总览
Linux
02
ARM64异常向量表
异常向量表基址(VBAR_EL1) · 向量表布局 · 同步异常与异步异常的入口区分
ARM64
异常向量表
03
异常入口与栈切换
从EL0到EL1的栈切换机制 · SP_EL0与SP_EL1的切换时机 · 内核栈的建立
异常入口
栈切换
04
pt_regs结构体
pt_regs在栈上的布局 · 保存的寄存器顺序(X0-X30 · SP
pt
regs
05
保存现场(kernel_entry)
kernel_entry宏的详细执行… · 保存通用寄存器 · 特殊寄存器(SPSR
kernel
entry
06
恢复现场(kernel_exit)
kernel_exit宏的详细执行流… · 从栈上恢复寄存器 · eret指令返回用户态
kernel
exit
07
异常返回路径分析
eret指令的行为 · 恢复PSTATE(SPSR_ELx) · 跳转到ELR_ELx指定的地址
异常返回路径分析
eret
08
中断上下文与进程上下文
硬中断上下文 · 软中断上下文 · 进程上下文的区别
断上下文
进程上下文
09
中断嵌套与栈深度
中断嵌套时的栈使用规则 · IRQ栈与内核栈的分离 · 栈溢出检测
断嵌套
栈深度
10
panic与oops流程
oops发生时如何打印寄存器现场 · show_regs()函数的实现原理
panic
oops
11
dump_stack()分析
dump_stack如何回溯调用栈 · 基于fp(帧指针)或基于eh_fra…
dump
stack
12
关键寄存器分析(PC)
异常发生时的PC值(ELR) · 如何判断PC是否在合法代码段 · 模块地址与内核地址
PC
关键寄存器分析
13
关键寄存器分析(LR/X30)
LR在异常时的值 · 如何通过LR判断调用链 · LR被破坏的常见场景
LR/X30
关键寄存器分析
14
关键寄存器分析(SP)
SP值异常的含义(栈溢出 · 栈指针错乱) · 检查栈顶栈底边界
SP
关键寄存器分析
15
关键寄存器分析(SPSR)
SPSR保存的PSTATE · 判断异常发生时的处理器模式(EL0/… · FIQ/IRQ屏蔽位
SPSR
关键寄存器分析
16
关键寄存器分析(ESR)
异常综合症寄存器 · 解析异常类型(数据异常 · 指令异常
ESR
关键寄存器分析
17
关键寄存器分析(FAR)
错误地址寄存器 · 用于数据访问异常时的虚拟地址 · 判断访问越界或空指针
FAR
关键寄存器分析
18
MMU与页表异常
地址转换故障 · TTBR0/TTBR1切换 · 内核页表与用户页表
MMU
页表异常
19
空指针解引用分析
访问地址0或接近0的寄存器现场特征 · FAR值接近0 · ESR指示数据异常
空指针解引用分析
访问地址0或接近…
20
栈溢出分析
栈溢出时的寄存器特征(SP异常低 · 栈内容被破坏 · LR指向无效地址)
栈溢出分析
SP
21
原子上下文睡眠
在原子上下文(spinlock · 中断)中调用可能导致睡眠的函数 · 内核检测与dump信息
原子上下文睡眠
spinlock
22
死锁与自旋锁
自旋锁死锁时的寄存器现场 · CPU自旋等待的特征 · lockdep输出
死锁
自旋锁
23
RCU stall检测
RCU宽限期停滞 · CPU处于关中断或循环中 · 寄存器PC值分析
RCU
stall
24
内核Oops实战分析(1)
一个真实的NULL指针解引用Oops · 逐字段解析寄存器与栈回溯
Oops
内核
25
内核Oops实战分析(2)
一个栈溢出导致的Oops · 分析SP与LR的异常值 · 定位溢出函数
Oops
内核
26
内核Oops实战分析(3)
一个中断上下文睡眠导致的Oops · 分析preempt_count与调用…
Oops
内核
27
使用GDB调试内核转储
加载vmlinux和kdump · 使用gdb查看pt_regs · bt命令回溯
GDB
使用
28
使用crash工具分析
crash工具的bt · ps · rd
crash
使用
29
寄存器现场恢复的逆向工程
从dump出的寄存器值反推异常发生前… · 重建函数调用关系
寄存器现场恢复的…
dump
30
课程总结与最佳实践
异常调试方法论 · 常用内核配置(CONFIG_DEBU… · LOCKDEP等)
课程总结
最佳实践
所属VIP或分类
同VIP:Linux内核崩溃场景下寄存器分析定位内存访问越界
同VIP:Linux内核崩溃场景中kprobe动态跟踪与关键值分析
同VIP:Linux内核崩溃场景中寄存器分析定位关键异常