動態(tài)輸出可以動態(tài)選擇打開某個內(nèi)核子系統(tǒng)的輸出,可以有選擇性地打開某些模塊的輸出。
配置內(nèi)核編譯選項要使用動態(tài)輸出,必須在配置內(nèi)核時打開CONFIG_DYNAMIC_DEBUG宏。內(nèi)核代碼里使用大量pr_debug()/dev_dbg()函數(shù)來輸出信息,這些就使用了動態(tài)輸出。
需要打開的內(nèi)核配置選項:
CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_DEBUG是配置動態(tài)輸出,它依賴于CONFIG_DEBUG_FS,而CONFIG_DEBUG_FS是debugfs文件系統(tǒng)。
打開內(nèi)核配置后,我們還需要掛載debugfs文件系統(tǒng)。
debugfs文件系統(tǒng)掛載動態(tài)輸出在debugfs文件系統(tǒng)中有一個control文件節(jié)點,這個文件節(jié)點記錄了系統(tǒng)中所有使用動態(tài)輸出技術(shù)的文件名路徑、輸出所在的行號、模塊名字和要輸出的語句。
debugfs默認(rèn)會掛載到/sys/kernel/debug,如果沒有掛載,可以執(zhí)行以下命令掛載:
mount -t debugfs none /sys/kernel/debug/
掛載debugfs文件系統(tǒng)后,可以查看control節(jié)點內(nèi)容:
cat /sys/kernel/debug/dynamic_debug/control
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關(guān)推薦
很多內(nèi)核開發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核中,使用printk()函數(shù)來打印信息,它與C庫的printf()函數(shù)類似。
發(fā)表于 06-01 15:14
?1082次閱讀
上篇說到printk調(diào)試,但printk是全局的,只能設(shè)置輸出等級。而動態(tài)輸出可以動態(tài)選擇打開某個內(nèi)核
發(fā)表于 06-01 15:16
?484次閱讀
問個問題,怎么調(diào)試linux內(nèi)核,百度了一下,結(jié)果還是不會使用gdb調(diào)試內(nèi)核。希望大蝦幫忙指點一下。
發(fā)表于 02-25 07:32
現(xiàn)有的嵌入式LINUX系統(tǒng)開發(fā)過程中,所有的工程師都疲憊于使用兩種不同的調(diào)試模式分別調(diào)試系統(tǒng)的內(nèi)核和應(yīng)用程序。首先通過一個JTAG調(diào)試工具來
發(fā)表于 11-06 11:00
?0次下載
了解如何配置和使用Linux內(nèi)核printk功能,包括其動態(tài)調(diào)試功能。
這樣可以選擇性地打印調(diào)試消息,而無需重新編譯
發(fā)表于 11-27 06:40
?3057次閱讀
內(nèi)核開發(fā)比用戶空間開發(fā)更難的一個因素就是內(nèi)核調(diào)試艱難。內(nèi)核錯誤往往會導(dǎo)致系統(tǒng)宕機,很難保留出錯時的現(xiàn)場。調(diào)試
發(fā)表于 05-07 11:01
?2316次閱讀
Linux:QEMU調(diào)試內(nèi)核的步驟
發(fā)表于 06-23 09:03
?3107次閱讀
在Linux下的開發(fā)中,printf打印調(diào)試信息默認(rèn)輸出到標(biāo)準(zhǔn)輸出 stdout (即屏幕/終端)中。我們也可以使用輸出重定向技術(shù)
發(fā)表于 11-04 16:40
?7344次閱讀
本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試教程。
發(fā)表于 11-06 17:32
?21次下載
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試(嵌入式開發(fā)和硬件開發(fā))-嵌入式LINUX系統(tǒng)內(nèi)核和
發(fā)表于 07-30 13:55
?10次下載
printk()是很多嵌入式開發(fā)者喜歡用的調(diào)試手段之一,但是,使用printk()每次都要重新編譯內(nèi)核,很不方便。使用動態(tài)輸出在不需要重新編譯內(nèi)核
發(fā)表于 01-06 10:46
?820次閱讀
內(nèi)核總是那么捉摸不透, 內(nèi)核也會犯錯, 但是調(diào)試卻不能像用戶空間程序那樣, 為此內(nèi)核開發(fā)者為我們提供了一系列的工具和系統(tǒng)來支持內(nèi)核的
發(fā)表于 02-20 17:56
?809次閱讀
內(nèi)核總是那么捉摸不透, 內(nèi)核也會犯錯, 但是調(diào)試卻不能像用戶空間程序那樣, 為此內(nèi)核開發(fā)者為我們提供了一系列的工具和系統(tǒng)來支持內(nèi)核的
發(fā)表于 05-22 14:37
?1414次閱讀
動態(tài)輸出使用 打開svcsock.c文件中所有的動態(tài)輸出語句 # echo 'file svcsock.c +p' > /sys/ kernel /debug/ dynamic_deb
發(fā)表于 09-27 15:51
?462次閱讀
很多內(nèi)核開發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核中,使用printk()函數(shù)來打印信息,它與C庫的printf()函數(shù)類似。 printk()與printf()的一個重要
發(fā)表于 09-27 16:09
?969次閱讀
評論