读“嵌入式Linux的调试技术”的心得

本文介绍了Linux驱动及HAL程序库的调试方法,包括设置断点、逐步跟踪代码、使用printk打印内核调试信息等。同时介绍了如何通过gdb和Kgdb等工具逐行跟踪程序代码,以及使用虚拟文件系统进行数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)用gdbgdbserver可以调试用户空间程序

(2)用Kgdb远程调试内核空间程序

 

转载于:https://www.cnblogs.com/zhanghui4521/p/5613007.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值