怎样快速调试linux内核?有哪些需要注意的问题?

  1. 云栖社区>
  2. 程序员互动联盟>
  3. 博客>
  4. 正文

怎样快速调试linux内核?有哪些需要注意的问题?

技术小能手 2018-09-12 16:02:45 浏览1436
展开阅读全文

这个问题就比较专业了,linux内核调试还是在调试内核驱动的时候用过,涉及的程度不是特别深,但是可以说下大致的思路,linux虽然贵为操作系统,但是归根到底还是一个程序,既然是程序就能用debug的方式去调试,只不过由于环境的差异,使用的方法和工具不尽相同,在linux下面常见的调试工具gdb,在windows上面更多的调试工具是界面化的,直接对应的中间变量的数值以及申请内存的地址都会直观的展示出来,在linux上主要是通过命令的方式查看,开始会觉得很不习惯,觉得很深奥,其实就是命令的行的使用也就是常见的几个命令。

58893a7fa739d826104161cd6dca35c9bd4f2a90

回到正题linux内核调试用的kgdb,一种专门针对linux内核的调试工具,所谓的内核的调试,主要还是在嵌入式板卡上用的比较多,需要掌握一个概念交叉编译,这个是玩嵌入式的必备概念,通俗点讲,在主机电脑上将程序编译好,然后放在嵌入式板卡里面运行,在这就不一一举例如何去运行,这种教科书般的教程随手就能在网上获取,现在只是把一些关键技术步骤或者细节点归纳几条分享给大家:

1607c1dd564f12c080b28ef3d394af55a830461e

1.生成的调试库以及驱动ko文件都会比较大,所以准备的磁盘空间至少20G左右

2.需要让内核支持支持kgdb调试功能,需要打开配置开关,正常的编译内核用make menuconfig,进入kernel hacking一项

3.在编译工程中注意文件的备份,一旦生成有问题,可以拿着之前的版本进行恢复

4.linux内核的调试其实就是vmlinux的调试,在这涉及到一个很关键的概念,远程调试,内核的调试一般采用串口连接的方式,现在linux应用远程调试用网络的居多

5.调试内核,很多命令使用还是基于gdb完成,gdb的命令还是要熟悉

简单呢归纳到这里,希望能帮到你。

271251e6f2ee277822396ff95af2f1f88655f262

原文发布时间为:2018-09-9本文作者:东辉在线本文来自云栖社区合作伙伴“程序员互动联盟”,了解相关信息可以关注“程序员互动联盟”。

网友评论

登录后评论
0/500
评论
技术小能手
+ 关注
所属云栖号: 程序员互动联盟