QEMU+gdb调试Linux内核全过程

本文详细介绍了如何使用QEMU和GDB进行Linux内核的调试,包括编译Linux 4.6.2内核,构建QEMU 2.12,更新gdb,使用busybox创建最小文件系统,以及QEMU+GDB的调试步骤。在调试过程中,特别强调了处理编译警告和错误的重要性,以及解决各种依赖问题的技巧。
AI助手已提取文章相关产品:

1、编译源码(Linux kernel 4.6.2)

make menuconfig

执行make menuconfig时报错缺少库文件

需要安装依赖库

sudo apt-get install aptitude
sudo aptitude install libncurses5-dev
sudo apt-get install libssl-dev

首先编译内核,编译内核时注意要选两个选项。(注意:除此之外kernel hacking选项下其他的选项都不要选,否则会出现断点无法拦截的情况。这个说法有待验证)

kernel hacking –> kernel debugging –> compile the kernel with debug info

kernel hacking –> compile the kernel with frame pointers

make bzImage -j4

在编译过程中会出现如下的warning,最好解决掉
这里写图片描述
解决方法:
进入make menuconfig的图形界面,选择kernel hacking,将frame size由1024改成2048即可。
这里写图片描述
这里写图片描述
这里写图片描述
这样就生成了bzImagevmlinux

bzImage 位于Linux-4.6.2/arch/x86/boot/bzImage

vmlinux 位于linux-4.6.2/vmlinux

2、编译QEMU(使用最新版2.12)

2.1 下载源码

https://download.qemu.org/

下载2.12.0版本;

2.2 编译前的工作

编译之前需要安装一些库文件,否则会卡在下面的页面不动;
这里写图片描述

因此需要安装SDL图形库:(注意是2.0版本的SDL)

sudo apt-get install  libsdl2-2.0
sudo apt-get install  libsdl2-dev

运行下列代码:

./configure --enable-debug  --target-list=x86_64-softmmu

您可能感兴趣的与本文相关内容

评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值