第十章阅读随想

这一章讲的是Linux的各种调试技术

打印内核调试信息:printk

Printk函数的原型:

Asmlinkage int printkconst char *fmt,。。。。)printk函数既可以将日志信息写到日志文件,也可以将日志信息写到控制台。Printk文件是一个简单的由4个数字组成的文本文件,默认值为:6 4 1 7

6:强消息输出到控制台的级别,只有高于该级别的输出信息才会输出到控制台

4:默认的消息日志级别,如果不在

printk函数中指定日志级别,就会使用该值作为默认的级别

1:控制台日志级别可被设置的最小值(最高优先级别)

7:控制台日志级别的默认值

防止printk函数降低Linux驱动性能

大量使用printk函数频繁操作日志文件或控制台设备文件(/dev/console)会严重影响Linux驱动的性能,因此需要将printk函数去掉,最好的方法无疑是利用C语言中的编译指令

通过虚拟文件系统(/proc)进行数据交互

调试工具

gdb调试用户空间程序

# gcc -static -g-ogdb_debug /root/drivers/debug/gdb_debug.c

gdbserver远程调试用户空间程序

首先进入Android模拟器的终端然后进入data/local目录,并执行:# gdbserver:4321 ./gdb_debug

kgdb远程调试内核程序

Kgdb包含俩部分:kgdb内核和一套链接接口。Kgdb支持多种处理器架构

http://i.cnblogs.com/EditPosts.aspx?opt=1

posted @ 2016-07-05 15:13  402682881  阅读(75)  评论(0)    收藏  举报