很多內核開發者喜歡的調試工具是printk,在Linux內核中,使用printk()函數來打印信息,它與C庫的printf()函數類似。
printk()與printf()的一個重要區別是: printk()提供輸出等級 。內核會根據這個等級來判斷是否在終端或者串口中輸出。
printk的輸出格式
在實際調試中,printk()
可以和printf()
一樣,直接輸出一條字符串。
不過為了更好的顯示一些調試信息,可以加上函數名字(__func__)
和代碼行號(__LINE__)
,例如:
printk(KERN_EMERG"figo:%s, %d", __func__, __LINE__);
在雙引號""前加上輸出等級KERN_EMERG
,代表輸出等級為0
。
另外,在使用printk()的時候需要注意輸出格式,否則在編譯時會出現很多的警告。printk的輸出格式:
數據類型 | printk格式符 |
---|---|
int | %d或%x |
unsigned int | %u或%x |
long | %ld或%lx |
long long | %lld或%llx |
unsigned long long | %llu或%llx |
size_t | %zu或%zx |
size_t | %zd或%zx |
函數指針 | %pf |
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
3文章
1363瀏覽量
40228 -
Linux
+關注
關注
87文章
11229瀏覽量
208928 -
函數
+關注
關注
3文章
4306瀏覽量
62431
發布評論請先 登錄
相關推薦
MCU51的串口調試工具
MCU51的串口調試工具:本站會員 gxujjd 及sltian 推薦的Mcu51網站的免費串口調試工具。此版本使用C++Builder編寫.
發表于 01-16 11:53
?126次下載
如何使用英特爾SDK for OpenCL調試工具調試OpenCL主機和內核代碼
了解如何使用英特爾?SDKfor OpenCL?調試工具來調試OpenCL?主機和內核代碼
Python自定義輸出格式
自定義輸出格式 我們可以在之前添加的輸出格式中添加其他的格式內容 import coloredlogs import logging def func_name (): # 增加了 modules
評論