動態輸出可以動態選擇打開某個內核子系統的輸出,可以有選擇性地打開某些模塊的輸出。
配置內核編譯選項要使用動態輸出,必須在配置內核時打開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
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
4文章
1468瀏覽量
42875 -
Linux
+關注
關注
88文章
11760瀏覽量
219033 -
子系統
+關注
關注
0文章
115瀏覽量
13502
發布評論請先 登錄
相關推薦
熱點推薦
Linux內核學習筆記:printk調試
很多內核開發者喜歡的調試工具是printk,在Linux內核中,使用printk()函數來打印信息,它與C庫的printf()函數類似。
發表于 06-01 15:14
?1858次閱讀
實例分析LINUX系統的靜/動態集成調試模式
現有的嵌入式LINUX系統開發過程中,所有的工程師都疲憊于使用兩種不同的調試模式分別調試系統的內核和應用程序。首先通過一個JTAG調試工具來
發表于 11-06 11:00
?0次下載
如何配置和使用Linux內核printk功能
了解如何配置和使用Linux內核printk功能,包括其動態調試功能。
這樣可以選擇性地打印調試消息,而無需重新編譯
使用動態輸出打印內核的DEBUG信息
printk()是很多嵌入式開發者喜歡用的調試手段之一,但是,使用printk()每次都要重新編譯內核,很不方便。使用動態輸出在不需要重新編譯內核
Linux內核調試的方式以及工具集錦
內核總是那么捉摸不透, 內核也會犯錯, 但是調試卻不能像用戶空間程序那樣, 為此內核開發者為我們提供了一系列的工具和系統來支持內核的
Linux內核基礎:動態輸出使用
動態輸出使用 打開svcsock.c文件中所有的動態輸出語句 # echo 'file svcsock.c +p' > /sys/ kernel /debug/ dynamic_deb
內核調試工具printkprintk的輸出格式
很多內核開發者喜歡的調試工具是printk,在Linux內核中,使用printk()函數來打印信息,它與C庫的printf()函數類似。 printk()與printf()的一個重要
Linux內核動態輸出調試
評論