很多內(nèi)核開(kāi)發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核中,使用printk()函數(shù)來(lái)打印信息,它與C庫(kù)的printf()函數(shù)類(lèi)似。
printk()與printf()的一個(gè)重要區(qū)別是: printk()提供輸出等級(jí) 。內(nèi)核會(huì)根據(jù)這個(gè)等級(jí)來(lái)判斷是否在終端或者串口中輸出。
printk的輸出格式
在實(shí)際調(diào)試中,printk()
可以和printf()
一樣,直接輸出一條字符串。
不過(guò)為了更好的顯示一些調(diào)試信息,可以加上函數(shù)名字(__func__)
和代碼行號(hào)(__LINE__)
,例如:
printk(KERN_EMERG"figo:%s, %d", __func__, __LINE__);
在雙引號(hào)""前加上輸出等級(jí)KERN_EMERG
,代表輸出等級(jí)為0
。
另外,在使用printk()的時(shí)候需要注意輸出格式,否則在編譯時(shí)會(huì)出現(xiàn)很多的警告。printk的輸出格式:
數(shù)據(jù)類(lèi)型 | 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 |
函數(shù)指針 | %pf |
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1382瀏覽量
40430 -
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210418 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62979
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
FPGA調(diào)試工具-chipscope
MCU51的串口調(diào)試工具
多媒體視頻輸出格式有哪些?
舵機(jī)調(diào)試工具
如何使用英特爾SDK for OpenCL調(diào)試工具調(diào)試OpenCL主機(jī)和內(nèi)核代碼
Python自定義輸出格式
![Python自定義<b class='flag-5'>輸出格式</b>](https://file1.elecfans.com/web2/M00/A8/A5/wKgZomUg0FeABw1YAAAQwyfP-OU881.jpg)
評(píng)論