嵌入式Linux的调试技术
作者:网络转载 发布时间:[ 2016/7/5 10:49:09 ] 推荐标签:操作系统 Linux 函数
打印内核调试信息:printk
Printk函数运行在内核空间,printf函数运行在用户空间。Linux内核程序只能使用printk函数输出调试信息。
防止printk函数降低linux驱动性能
Linux驱动只在开发阶段使用printk函数输出消息。正式发布linux驱动是将可能影响性能的printk函数去掉。利用c语言中的编译指令(#if, #else, #endif等)
通过虚拟文件系统(/proc)进行数据交互
/proc经常被用来作为内核空间与用户控件进行数据交互的工具。/proc文件系统的行为方式与设备文件系统/dev类似。/proc并不是真正的文件系统,而是内存映射。
Proc_mkdir
name:虚拟目录名称
parent:虚拟目录父目录的proc_dir_entry结构体指针
create_proc_entry
name:虚拟文件名称
mode:虚拟文件的访问权限,等同于Linux问价的访问权限
parent:虚拟文件父目录的proc_dir_entry结构体指针。
Create_proc_read_entry
name:虚拟文件名称
mode:虚拟文件的访问权限,等同于Linux问价访问权限。
base:虚拟文件父目录的proc_dir_entry结构体指针。
read_proc:处理读动作的函数指针。
data:用于虚拟文件系统的数据。
remove_proc_entry
name:要删除的虚拟文件的名称
parent:虚拟文件父目录的proc_dir_entry结构体指针
调试工具
这些工具可以逐行跟踪程序代码
1.用gdb调试用户空间程序
跟踪调试用户空间的程序。只可在pc上进行测试
2.用gdbserver远程调试用户空间程序
测试运行在开发板、手机或者android模拟器上的程序。可运行在arm架构上的服务端程序
3.用kgdb远程调试内核程序
提供类似printk函数的日志输出功能,允许开发人员直接在pc上通过GDB连接目标设备。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11