1.printk
1.1 printk的优点:
a. 在中断中调用
b. 在进程上下文中调用
c.在持有锁时调用
d.在多处理器上同时使用
b. 在进程上下文中调用
c.在持有锁时调用
d.在多处理器上同时使用
1.2 printk的缺点:
a.终端启动前无法调用
1.3 printk打印信息的级别
1.4 printk的使用
eg.
printk( KERN_WARNING“This is a warning\n”);
printk( KERN_DEBUG“This is a warning!\n” );
printk( KERN_DEBUG“This is a warning!\n” );
2.klogd
klogd用来记录缓冲区获取的内核消息。只有日子级别小于console_loglevel,消息才能显示出来,console_loglevel的值可以通过sys_syslogd系统调用进行修改。
运行klogd时,可以使用-c标志改变中断的日子。运行klogd后,消息将追加到/var/log/messages。
没有运行klogd的Linux系统,消息不会传递到用户空间,但是可以通过查看/proc/kmsg文件得到。
调试信息数据流传递流程图:
3.查看更改日志级别
查看日志级别:
cat /proc/sys/kernel/printk
更改日志级别(如改为级别8):
echo 8 > /proc/sys/kernel/printk
本文介绍了Linux驱动调试中的关键手段,包括使用printk进行内核消息打印,理解klogd服务如何记录这些日志,以及如何查看和更改日志级别,帮助开发者更有效地诊断和解决问题。

3546

被折叠的 条评论
为什么被折叠?



