1、前言
linux内核对于大部分开发来讲,都是一个黑盒子,熟悉又陌生。本人之前在跟踪内核源码时,遇到棘手的问题就束手无策,不能很有效的了解内核函数的调用关系,各变量的具体值,经常需要不停的加堆栈、加打印、网上搜索,费时费力。
一次在听张师傅直播剖析epoll源码的过程中(视频1:53:37处
),接触到可以通过qemu+busybox+gdb对linux内核源码进行调试(打断点、打堆栈、获取变量值等等),当时就激动了,十分的酷炫且实用,着实眼前一亮。
工欲善其事,必先利其器
,接下来就将整个环境搭建过程全部、仔细的记录下来,希望能对参与linux开发的各位有一点帮助。
2、需要使用的各工具的版本
强烈建议按照此文档的各工具版本进行环境搭建,防止出现莫名其妙的错误。
2022-04-05添加备注: 后续有遇到关于virtualbox上ubuntu运行qemu卡住问题,在此时安装运行ubuntu的虚拟机软件的时候,建议选择VMware,网上有很多相关资料参考。如果大佬知道如何解决virtualbox的kvm问题,欢迎留言。
3、构建过程
4、参考文档
1、jackchan-x:qemu + gdb + busybox 内核调试流程
2、V4ler1an-有毒:QEMU + Busybox 模拟 Linux 内核环境
很感谢能有这么多优秀的博主乐于分享,有什么理由不给他们点个赞呢?🐕
有疑问欢迎一起交流!