virtualbox/vmware + ubuntu + qemu + busybox + gdb 调试linux x86内核

1,083 阅读2分钟

1、前言

linux内核对于大部分开发来讲,都是一个黑盒子,熟悉又陌生。本人之前在跟踪内核源码时,遇到棘手的问题就束手无策,不能很有效的了解内核函数的调用关系,各变量的具体值,经常需要不停的加堆栈、加打印、网上搜索,费时费力。

一次在听张师傅直播剖析epoll源码的过程中(视频1:53:37处),接触到可以通过qemu+busybox+gdb对linux内核源码进行调试(打断点、打堆栈、获取变量值等等),当时就激动了,十分的酷炫且实用,着实眼前一亮。

工欲善其事,必先利其器,接下来就将整个环境搭建过程全部、仔细的记录下来,希望能对参与linux开发的各位有一点帮助。

2、需要使用的各工具的版本

强烈建议按照此文档的各工具版本进行环境搭建,防止出现莫名其妙的错误。

  1. VirtualBox 6.0.14 (released October 15 2019)

image.png

2022-04-05添加备注: 后续有遇到关于virtualbox上ubuntu运行qemu卡住问题,在此时安装运行ubuntu的虚拟机软件的时候,建议选择VMware,网上有很多相关资料参考。如果大佬知道如何解决virtualbox的kvm问题,欢迎留言。

  1. ubuntu-16.04.7 image.png

  2. ubuntu16.04 sources.list image.png

  3. qemu-2.5.0 image.png

  4. gdb-7.11.1 image.png

  5. busybox-1.33.0.tar.bz2

  6. linux-4.19.157.tar.xz

3、构建过程

  1. virtualbox安装ubuntu
  2. 安装qemu
  3. 安装gdb
  4. 编译busybox
  5. 编译linux内核
  6. 调试linux内核

4、参考文档

1、jackchan-x:qemu + gdb + busybox 内核调试流程

2、V4ler1an-有毒:QEMU + Busybox 模拟 Linux 内核环境

很感谢能有这么多优秀的博主乐于分享,有什么理由不给他们点个赞呢?🐕

有疑问欢迎一起交流!