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

相關文章
相關標籤/搜索