linux内核调试分析指南
linux内核调试分析指南--上篇
本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址
一些前言
作者前言
知识从哪里来
为什么撰写本文档
为什么需要汇编级调试
***第一部分:基础知识***
总纲:内核世界的陷阱
源码阅读的陷阱
代码调试的陷阱
原理理解的陷阱
建立调试环境
发行版的选择和安装
安装交叉编译工具
bin工具集的使用
qemu的使用
skyeye的使用
UML的使用
vmware的使用
initrd.img的原理与制作
x86虚拟调试环境的建立
arm虚拟调试环境的建立
arm开发板调试环境的建立
gdb基础
基本命令
gdb之gui
gdb技巧
gdb宏
汇编基础--X86篇
用户手册
AT&T汇编格式
内联汇编
汇编与C函数的相互调用
调用链形成和参数传递
C难点的汇编解释
优化级别的影响
汇编基础--ARM篇
用户手册
调用链形成和参数传递
源码浏览工具
调用图生成工具
find + grep
wine + SI
global
Source-Navigator
vim + cscope/ctags
kscope
lxr
SI等与gdb的特点
调用链、调用树和调用图
理想调用链
函数指针调用
调用链的层次
非理想调用链
调用树与调用图
穿越盲区
穿越gdb的盲区
穿越交叉索引工具的盲区
工程方法
bug 与 OOPS
linux内核调试分析指南--下篇
***第二部分:内核分析***
内核组织层次和复杂度
内核层次
内核复杂度
复杂度隔离
gdb在内核分析中的用途
数据验证
界面剥离
参数记忆
路径快照
长程跟踪
整理思路
内核编码的艺术
信息聚集
数据聚集
关系聚集
操作聚集
松散聚集
顺序聚集
链表聚集
哈希聚集
树形聚集
分层聚集
分块聚集
对象聚集
设施客户
设备驱动模型分析
linux设备子系统的组成
设备驱动模型
usb子系统分析
如何阅读分析大型子系统
btrfs文件系统分析
区间树核心代码分析
B树核心代码分析
调试相关子系统
kgdb源码分析
sysrq
oprofile
kprobes
驱动分析
载入模块符号
***第三部分:其他工具***
kexec
strace
ltrace
SystemTap
MEMWATCH
YAMD
Magic SysRq
附录:社区交流相关
补丁提交相关文档
补丁制作与提交示范
多补丁发送工具
git使用
Git公共库创建及使用
附录:内核参考书籍文章
内核git库
书籍
子系统官方网站
必看网站
参考文章
私人备忘
1