欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

淺談調試內核 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

淺談調試內核

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):64


調試內核感到很麻煩,在網(wǎng)上搜到的帖子倒是多,大年夜多半都是復制粘貼過來,一搜一大年夜堆,浪費大年夜把的時光,的確就是在坑害人。其實我本身在這方面也不是很懂的。然則解決本身的┞封個問題,照樣有點收成的。
在這之前要先談一下printf和printk之間的差別:
printf 很輕易懂得,用戶層函數(shù),將字符打印到控制臺上。
  printk,內核層函數(shù),內核會根據(jù)日記級別,可能把消息打印到當前控制臺上,這個控制臺平日是一個字符模式的終端、一個串口打印機或是一個并口打印機。這些消息正常輸出的前提是──日記輸出級別小于console_loglevel(在內核中數(shù)字越小優(yōu)先級越高)。
  沒有指定日記級其余printk語句默認采取的級別是 DEFAULT_ MESSAGE_LOGLEVEL(這個默認級別一般為<4>,即竽暌閨KERN_WARNING在一個級別上),其定義在linux26/kernel/printk.c中可以找到
  日記級別一共有8個級別,printk的日記級別定義如下(在include/linux/kernel.h中):
  #define KERN_EMERG 0/*緊急事宜消息,體系崩潰之前提示,表示體系弗采取*/
  #define KERN_CRIT 2/*臨界前提,平日涉及嚴重的硬件或軟件操作掉敗*/
  #define KERN_ERR 3/*缺點前提,驅動法度榜樣常用KERN_ERR來申報硬件的缺點*/
  #define KERN_WARNING 4/*警告前提,對可能出現(xiàn)問題的情況進行警告*/
  #define KERN_NOTICE 5/*正常但又重要的前提,用于提示*/
  #define KERN_INFO 6/*提示信息,如驅動法度榜樣啟動時,打印硬件信息*/
  #define KERN_DEBUG 7/*調試級其余消息*/
在法度榜樣中可以添加調試語句(終端打印調試)
  printk(KERN_NOTICE "DevilBios hahahhahahahhahahahahahahah\n");
先改一下控制臺級別:
 經(jīng)由過程讀寫/proc/sys/kernel/printk文件可攫取和修改┞菲握臺的日記級別。查看這個文件的辦法如下:
  #cat /proc/sys/kernel/printk 6 4 1 7
  #define KERN_ALERT 1/*申報消息,表示必須急速采取辦法*/
  膳綾擎顯示的4個數(shù)據(jù)分別對應控制臺日記級別、默認的消息日記級別、最低的┞菲握臺日記級別和默認的┞菲握臺日記級別。
  可用下面的敕令設置當前日記級別:
-c
  # echo 8 > /proc/sys/kernel/printk
然則當我們 insmod XXX.ko 的時刻并沒有什么現(xiàn)象產生:
接下來再學一個Linux敕令:dmesg
  dmesg用來顯示開機信息,將kernel里的信息顯示到控制臺上,同理,我改變Linux里kernel內容,添加調試語句,那么調試語句也會打印到控制臺 上。
dmesg用法:
當完成打印顯示后清除環(huán)緩沖內的內容。
如許理論什么都是可以打印到控制臺膳綾擎去了。
-s 緩沖區(qū)大年夜小
定義一個大年夜小為"緩沖區(qū)大年夜小"的緩沖區(qū)用于萌芽內核環(huán)緩沖區(qū)。默認大年夜小為 8196(此大年夜小與 2.0.33 和 2.1.103 內核的默認syslog 緩沖區(qū)大年夜小一致),如不雅你設置了一個大年夜于默認值的環(huán)緩沖區(qū),那你就可以用這個選項定義一個相當?shù)木彌_區(qū)來查看完全的環(huán)緩沖區(qū)內容。
設置級別為記錄控制臺啟動信息的級別。比如,-n 1指的就是將此級別設為最初級,除了內罕愫信息之外不會向控制臺顯示信息。所有級其余啟動信息還將記錄到/proc/kmsg,文件中,是以,syslogd(8)同樣可以用來對信息的輸出進行控制。當應用-n選項時,dmesg將不會 清除內核環(huán)緩沖區(qū)中的內容。當同時應用以上兩個選項時,只有最后一個選項才會產生效不雅
-n級別
所以,在模塊履行的時刻,我們在終妒攀里敲下敕令dmesg,就可以看到調試語句了。

相關案例查看更多