Linux驱动----3、调试技术和/prop

本文介绍了Linux系统中Klogd和Syslogd的职责,如何处理内核信息,以及printk的使用和日志级别。还探讨了宏定义中##和#的作用,并详细阐述了如何利用/proc文件系统进行内核调试和动态数据生成。
摘要由CSDN通过智能技术生成

Klogd&&Syslogd

1>  所有系统信息是输出到ring buffer中去的.dmesg所显示的内容也是从ring buffer中读取的.

2> LINUX系统中/etc/init.d/sysklogd会启动2个守护进程:Klogd&&Syslogd

3> klogd是负责读取内核信息的,有2种方式:

            syslog()系统调用

            直接的对/proc/kmsg进行读取(/proc/kmsg是专门输出内核信息的地方)

4>   Klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log 信息输出到/var/log/下的不同文件中.

printk

日志级别字符串:KERN_EMERG, KERN_ALERT, KERN_CRIT, KERN_ERR, KERN_WARNING, KERN_NOTICE, KERN_INFO, KERN_DEBUG. printk默认级别是DEFAULT_MESSAGE_LOGLEVEL(在kernel/printk.c中定义)。当优先级小于console_loglevel消息才会显示出来。

宏定义中##和#的作用

 ##是一个连接符号,用于把参数连在一起,例如: 
            > #define  FOO(arg)   my##arg 
            > FOO(abc)         相当于   myabc      

 #是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串,例如: 
            > #define STRCPY(dst, src)   strcpy(dst, #src)        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值