第十章 嵌入式Linux调试技术

Android深度探索(1)HAL与驱动开发学习笔记(10

第十章 嵌入式Linux调试技术

 

    Printk函数运行在内核空间,printf函数运自行在用户空间。像L i n u x驱动这样的Linux内核程序只能使用p r i n tk 函数输出调试信息。

L i n u x文件系统中,/p r o c经常被用来作为内核空间与用户空间进行数据交互的工具。/p r o c文件系统的行为方式与设备文件系统( / d e v)类似。/p r o c是虚拟文件系统,也就是说了/p r o c并不是真正的文件系统,而是内存映射。所有读写/p r o c的操作都是对内存的读写,所以读写/p r o c文件系统的速度要远比读写/d e v文件系统的速度快。因此,/p r o c文件系统也可作为Li n u x驱动与用户空间程序交互的工具。

有很多系统信息就是通过/p r o c文件系统由内核空间的程序向外界提供的。例如,当前系统的内存资源就是通过/p r o c/m e m i n f o文件获取的,/可以使用如下的命令查看/p r o c / m e m i n f o文件的内容。

# cat /proc/meminfo

    L i n u x系统中提供了一类工具。通过这些工具,可以逐行跟踪程序的代码,就好像可视化开发工具的st e p  i n t os tep  ov er一样。

这些工具包含用于调试用户空间程序的g dbg d bse r ver和调试内核空间程序的k g d b

原文地址:https://www.cnblogs.com/zhangnene/p/5640709.html