Android深度探索与HAL驱动开发(卷1)-- 第十章随笔

第10章 嵌入式Linux的调试技术

通过虚拟文件系统(/proc)进行数据交互

在编写代码时应了解一下几点:

1、creat_proc_read_entry 函数在内部是通过调用creat_proc_entry 函数实现的。所谓只读就是通过 creat_proc_read_entry 函数可以指定处理文件读动作的函数,并且通过mode参数设置文件的只读属性(0944)。如果想把只读文件改成读写文件,只需要设置处理文件写动作的函数,并且将文件属性改成0666。

2、Linux文件的读写由属性决定。在程序中可以用八进制表示,例如0666表示八进制的666,也就是二进制的 110110110 。如果查看文件属性,会看到文件开头是-rw-rw-rw- 。而将文件属性设为0444,则文件属性是 –r—r—r—r-- ,表示只读。

3、删除虚拟目录之前,要先删除虚拟目录中的虚拟文件。

使用gdb_debug时应注意的问题:

由于gdb_server 是基于ARM处理器的程序的调试器(arm_none_linux_gnueabi_gdb),而且最好使用哪个版本编译的程序,就使用与之对应版本的调试器。虽然gdb_debug是在Android模拟器上运行的,但在Linux终端执行调试器是仍然需要指定gdb_debug。

Linux内核调试一直被很多人认为是非常困难的,大多数人宁愿直接使用printk函数输出调试信息,也不愿意使用各种命令(gdb、gdbserver、kgdb等)进行调试。因为这样做并不一定能换来更多的好处。

原文地址:https://www.cnblogs.com/JabinZhang/p/5639177.html