動態輸出可以動態選擇打開某個內核子系統的輸出,可以有選擇性地打開某些模塊的輸出。
配置內核編譯選項要使用動態輸出,必須在配置內核時打開CONFIG_DYNAMIC_DEBUG宏。內核代碼里使用大量pr_debug()/dev_dbg()函數來輸出信息,這些就使用了動態輸出。
需要打開的內核配置選項:
CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_DEBUG是配置動態輸出,它依賴于CONFIG_DEBUG_FS,而CONFIG_DEBUG_FS是debugfs文件系統。
打開內核配置后,我們還需要掛載debugfs文件系統。
debugfs文件系統掛載動態輸出在debugfs文件系統中有一個control文件節點,這個文件節點記錄了系統中所有使用動態輸出技術的文件名路徑、輸出所在的行號、模塊名字和要輸出的語句。
debugfs默認會掛載到/sys/kernel/debug,如果沒有掛載,可以執行以下命令掛載:
mount -t debugfs none /sys/kernel/debug/
掛載debugfs文件系統后,可以查看control節點內容:
cat /sys/kernel/debug/dynamic_debug/control
-
內核
+關注
關注
3文章
1406瀏覽量
41064 -
Linux
+關注
關注
87文章
11449瀏覽量
212700 -
子系統
+關注
關注
0文章
114瀏覽量
12661
發布評論請先 登錄
Linux內核學習筆記:printk調試
實例分析LINUX系統的靜/動態集成調試模式

如何配置和使用Linux內核printk功能
使用動態輸出打印內核的DEBUG信息
Linux內核調試的方式以及工具集錦
Linux內核基礎:動態輸出使用

評論