码迷,mamicode.com
首页 > 其他好文 > 详细

printk()函数-消息优先级宏

时间:2020-01-21 15:54:53      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:code   事件   监视   alert   控制   notice   打印   linu   硬件   

在对内核进行代码调试的时候,除了打开相应的内核开发配置选项之外,最普通也是最常用的调试就是打印出相关信息进行调试,对某些怀疑的变量进行监视,在用户空间下,我们最常用的方式是通过printf()函数来进行相关信息的输出,而在内核调试中,我们常用printk()函数来进行相关关键信息的输出,与printf()函数不同的地方是,printk()函数有消息输出优先级,即(loglevel),而这些loglevel是用相关的宏进行控制,例如:
printk(KERN_DEBUG "I am Senmashijie: %s:%i\n",__FILE__,__LINE__);
printk(KERN_CRIT "I am Senmashijie transhed;giving up on %p\n",ptr);

KERN_DEBUG 和 KERN_CRIT 就是消息输出优先级的宏,那么它们分别代表什么意思呢?

在<linux/kernel.h>中定义了8中可用的级别字符串,它们分别是:

KERN_EMERG
    用于紧急事件消息,一般是系统在崩溃之前提示的消息。

KERN_ALERT
   用于需要立即采取行动的动作。

KERN_CRIT
     临界状态,通常涉及严重的硬件或软件操作失败。

KERN_ERR
    用于报告错误状态。设备驱动程序会经常使用KERN_ERR来报告硬件的问题。

KERN_WARING
    对可能的问题进行警告,通常这类信息不会对系统造成较为严重的问题。

KERN_NOTICE
    必要提示,一般是安全相关的信息提示,使用KERN_NOTICE。

KERN_INFO
    提示性信息。驱动程序在启动的时候会以这个级别打印出它们所找到的硬件信息。

KERN_DEBUG
    用于调试信息。

  上述8中字符串信息,以宏的形式展开后表示一个整数,整数值的范围:0~7,数值越小,优先级越高。

希望以上总结信息对大家有所帮助。

printk()函数-消息优先级宏

标签:code   事件   监视   alert   控制   notice   打印   linu   硬件   

原文地址:https://www.cnblogs.com/Senchuangdianzi/p/12221815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!