博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Android深度探索》第十章心得体会
阅读量:6167 次
发布时间:2019-06-21

本文共 719 字,大约阅读时间需要 2 分钟。

      《Android深度探索》第十章讲的是嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行测试。printk函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息。在Linux文件系统中,/proc经常用来作为内核空间和用户空间进行数据交互的工具。/proc文件系统的行为方式和设备文件系统(/dev)类似。/proc是虚拟文件系统,也就是说/proc并不是真正的文件系统,而是内存映射。所有读写/proc的操作都是对内存的读写。所以读写/proc文件系统要远比读写/dev文件系统的速度快。因此,/proc文件系统也可作为Linux驱动与用户空间程序交互的工具。测试用户空间程序的gdb、gdbserver工具和调试内核空间的kgdb工具。Gdb可以跟踪调试用户空间的程序。List命令3种调用方式:list;list -;list n。

      通过对第十章的学习,我知道了Linux内核调试非常困难,大多数人宁愿直接使用printk函数输出调试信息,也不愿意使用各种命令进行调试。通过学习嵌入式Linux的调试技术,在调试时可根据实际情况决定使用其中的一种或几种。当发现某段代码的bug太多或很难通过printk函数输出信息找出,可以考虑使用kgdb用step by step的方式定位bug。灵活使用这些调试技术才是调试的根本。这些经验需要不断从实践中领悟。

转载于:https://www.cnblogs.com/zi-qing/p/5641817.html

你可能感兴趣的文章
Ajax跨域请求问题
查看>>
topic4:Qt入门之常用qt控件认知之Button系列
查看>>
jstack:Java堆栈跟踪工具
查看>>
源码安装 python3
查看>>
获取当前fragment
查看>>
linux centeros 7.4 修改主机名
查看>>
关于程序员,你知道的有多少?
查看>>
Tomcat问题汇总
查看>>
由于未预料的错误,现在无法使用nautilus
查看>>
业界最有价值的Linux资料大全(200篇)
查看>>
Arraylist动态扩容详解
查看>>
%cd%及%~dp0批处理命令的详解
查看>>
MySQL数据库负载很高连接数很多怎么处理
查看>>
关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) )
查看>>
Cent OS 环境下 samba服务器的搭建
查看>>
vCloud Director 1.5.1 Install Procedure
查看>>
hive 中的多列进行group by查询方法
查看>>
Cisco统一通信---视频部分
查看>>
nginx编译及参数详解
查看>>
VMware下PM魔术分区使用教程
查看>>