Linux驅動開發除錯技術之合理使用printk

2021-08-21 01:43:21 字數 864 閱讀 7207

一、

在除錯應用程式時,最常用的除錯技

術是列印,就是在應用程式中合適的

點呼叫printf

。當除錯核心**的時

候,可以用

printk

完成類似任務。

二、在驅動開發時,

printk

非常有助於除錯。但當

正式發行驅動程式時

,應當去掉這些列印語句。

但你有可能很快又發現,你又需要在驅動程式中實

現乙個新功能

(或者修復乙個

bug)

,這時你又要

用到那些被刪除的列印語句。這裡介紹一種使用

printk

的合理方法

,可以全域性地開啟或關閉它們,

而不是簡單地刪除。三、#

ifdef    

pdebug

#define    plog(

fmt,args

...)

printk

(kern_debug

"scull:"

fmt,##

args

)#else

#define     plog(

fmt,args

...)        

/*do nothing */

#endif

四、makefile

作如下修改:

debug=y

ifeq

($(debug),y)

debflags=-o2 -g

-dpdebug

else

debflags=-o2

endif

cflags+=$(debflags)

Linux驅動開發之使用dev dbg除錯裝置驅動

gqb666 1 最近在寫i2c下eeprom的驅動程式,但發現使用i2c new probed device函式無法列舉到裝置,於是想除錯該函式 位於driver i2c i2c core.c內 看到其中有些除錯資訊如下 cpp view plain copy i2c new probed dev...

linux裝置驅動四(除錯技術)

安裝自己的核心,發行版核心會關閉映像效能的除錯功能,kernel hacking的配置 printk,根據級別或優先順序鎖表示的嚴重程度對訊息進行分類。使用巨集來標示日誌界別,巨集會展開為乙個字串,編譯時和訊息文字拼接在一起,它們之間不需要逗號分割 通過將printk定義為乙個巨集,使用該巨集來列印...

linux驅動除錯之printk

對於做嵌入式或者熟悉linux核心的人來說,對printk這個函式一定不會感到陌生。printk相當於printf的孿生姐妹,她們乙個執行在使用者態,另乙個則在核心態被人們所熟知。printk是在核心中執行的向控制台輸出顯示的函式,linux核心首先在核心空間分配乙個靜態緩衝區,作為顯示用的空間,然...