Dynamic Debugging in Linux Kernel(1) --- How To...

利用linux kernel中內建的pr_dbgdev_dbg來進行調試,避免不斷的內核開發上比較費時的edit/rebuild/reboot操做。經過修改/sys/kernel/debug/dynamic_debug下的control文件,能夠控制打印輸出。可選功能以下linux

 

1.       某個模塊中的pr_dbgdev_dbg是否打印。函數

2.       某個文件中的pr_dbgdev_dbg是都打印。ui

3.       某個函數中的pr_dbgdev_dbg是否打印。spa

4.       某些行中的pr_dbgdev_dbg是否打印。.net

5.       符合某種format的格式的打印。debug

 

能夠利用如下步驟開啓這個功能。調試

1.       修改.config文件code

CONFIG_DYNAMIC_DEBUG=yorm

CONIFG_DEBUG_FS=yci

CONFIG_[SUBSYSTEM]_VERBOSE_PRINTK=y

 (eg. CONFIG_SND_VERBOSE_PRINTK=y)

CONFIG_[SUBSYSTEM]_DEBUG=y

 (eg. CONFIG_SND_DEBUG=y)

 

2.    從新編譯kernel

 

3.    啓動後,將debug filesystem掛載到某個目錄下。

mount -t debugfs none /sys/kernel/debug

 

4.       修改/sys/kernel/debug/dynamic_debug目錄下的controlenalbe或者disable某些輸出。

(參考: kernel_imx/Documentation/dynamic-debug-howto.txt

eg. echo 'file sound/soc/codecs/wm8994.c +p' > control來打開此文件中的pr_dbgdev_dbg輸出, echo 'file sound/soc/codecs/wm8994.c -p' > control來關閉這兩個輸出)

 

5.       http://lwn.net/Articles/434833/中說能夠下bootargs中添加ddebug_query參數,使boot time時就能夠用dynamic debugging,可是我試了下,不行。

 

 

 

 

 

 

 

參考: kernel_imx/Documentation/dynamic-debug-howto.txt

                   http://lwn.net/Articles/434833/

相關文章
相關標籤/搜索