Debug.Hacks 一书中,介绍了如果调试内核问题,在第五章的《实践内核调试》
总体来说,有一下的方法来调试内核:
1.用kgdb单步调试。具体请参见http://blog.csdn.net/haima1998/article/details/10070315
2.加打印printk来定位。
3.根据内核出错的kernel panic oops信息,反汇编,定位问题代码。
4.编写复现程序,或者创造复现条件。
5.gdb复现应用程序,查看backtrace信息,分析内核出错原因。
6.用opfofile来分析内核性能问题。
第五章: 实践内核调试:
1. kernel panic (空指针引用篇)
2. kernel panic (链表破坏篇)
3. kernel panic
4. 内核停止响应(死循环篇)
5. 内核停止响应(自旋锁篇)
6. 内核停止响应(信号量篇)
7. 实时进程停止响应篇
8. 运行缓慢的故障
9. CPU负载过高的故障