1对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。例如设置断点、逐步跟踪代码、输出调试信息等。
2打印内核调试信息:printk,该函数与printf用法类似,但是printk运行在内核空间,而printf运行在用户空间。
3printk文件是一个简单的有4个数字组成的文本文件,默认值:6 4 1 7
4 大量使用printk函数会降低Linux驱动性能。为了方便控制printk函数的输出,最好利用C语言中 的编译指令(#if,#else,#endif)
5 printk函数在控制台(终端)显示消息是通过/dev/console设备文件实现的。而该设备文件只在字符界面的控制台下才起作用。所以只有用在字符界面的控制台才能正常输出消息。
6通过虚拟文件系统(/proc)进行数据交互。/proc是虚拟文件系统,是内存映射,读写/proc文件系统的书店要远比读写/dev文件系统的速度快。
7 Linux文件的读写由属性决定,在程序中可用八进制表示。
8要删除虚拟目录之前,先删除虚拟目录下的虚拟文件。
9介绍2种调试工具,可以逐行跟踪程序的代码
(1)用gdb、gdbserver可以调试用户空间程序
(2)用Kgdb远程调试内核空间程序
我的博客地址
http://www.cnblogs.com/zhanghui4521/
时间: 2024-10-20 13:57:22