OS - 内核调式技术

 

1、内核kernel hacking调式菜单

在须要调式内核时,在编译时在kernel hacking菜单中linux

CONFIG_DEBUG_KERNEL  打开则使其余调式选项可用安全

 

CONFIG_DEBUG_SLAB 函数

打开内核内存分配函数的几类检查,能够探测到一些内存覆盖和遗漏初始化错误。spa

 

CONFIG_DEBUG_PAGEALLOCcode

满的页在释放时被从内核地址空间去除blog

 

CONFIG_DEBUG_SPINLOCK内存

内核捕捉对未初始化的自旋锁的操做编译

 

2、打印调式

在调式内核代码时,使用printk达到目的。class

printk 能够根据消息的严重程度对其分类,经过附加不一样的记录级别或者优先级在消息上。软件

printk(KERN_DEBUG "Here I am: %s: %i\n", __FILE__, __LINE__);
printk(KERN_CRIT "I'm trashed; Giving up on %p\n", ptr);

 

有8种可能的记录字串,在头文件<linux/kernel.h>头文件中

KERN_EMERG  用于紧急消息,经常是那些崩溃前的消息。

KERN_ALERT 须要马上动做的情形

KERN_CRIT 严重状况,经常与严重的硬件或软件失效有关

KERN_ERR 用来报告错误状况; 设备驱动经常使用KERN_ERR来报告硬件故障

KERN_WARNING 有问题的状况警告,这些状况本身不会引发系统的严重问题

KERN_NOTICE 正常状况,可是仍然值得注意。安全相关的状况会报告

KERN_INFO 信息型消息。这个级别,不少驱动在启动时打印它们发现的硬件信息

KERN_DEBUG 用做调式消息

数字范围从0到7,越小的数表示越大的优先级。

若是没有指定优先级缺省为DEFAULT_MESSAGE_LOGLEVEL  kernel/printk.c

相关文章
相关标签/搜索