linux 内核调试是很棘手的问题, 一般采用的方法有以下几种。总结不到的地方,欢迎讨论。
1. 最常用,最简单的方法, printk
printk 是内核驱动调试,最常用,最简单,也是用的最多的方法。
2. proc/sysfs
proc以及sysfs下的设备节点,也是开发者了解驱动内部状态的重要手段。
3. oops
这个是指内核出现段错误(Segmenttation Fault)是, 打印到控制台或者写入到系统Ring Buffer的信息。消息很难看,但是聊胜于无。
4. strace
监视应用程序访问系统的过程(通过系统调用)获取一些信息,以帮助找出错误。
5 内核调试器
kcore / KDB/KGDB
比较高级的方法,但是对我们而言,却是最不靠谱的。一直没有机会使用。