如何使用cgdb + qemu调试linux内核模块

本文详细介绍了如何使用cgdb和qemu调试Linux内核模块,包括获取和编译支持调试的内核,构建initramfs根文件系统,启动虚拟机以及使用cgdb设置断点进行调试的步骤。
摘要由CSDN通过智能技术生成

如何使用cgdb + qemu调试linux内核模块

前言

Linux 代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试,则对学习Linux kernel以及解决平时遇到的问题会大有帮助。本文将讲解如何使用cgdb + qemu的方式调试Linux内核代码,所使用的测试机操作系统版本是CentOS Linux release 7.2.1511 (Core)

1.编译额内核

1) 获取内核代码

内核代码下载地址:[kernel.org/] (kernel.org/),本文以4.9.153版本作为演示. 如下图,点击对应版本的 tarball 链接下载

v2-249381bd7dcadd8a59d0032574a2dda4_b.jpg


下载完成后将tar文件拷贝到测试机/root目录并进行解压。

# cd /root
# tar xf linux-4.9.153.tar.xz

2) 编译出支持调试的内核

配置编译选项

# cd linux-4.9.153
# make menuconfig

定位到Enable loadable module support:


v2-325024a7e6143ecaaac1d3024e829068_b.jpg


按空格键去掉选项Module signature verification,防止加载模块时如下报错: module verification failed: signature and/or required key missing - tainting kernel


v2-06022bd2f91a2a685c6f6d2b9cfc0e8a_b.jpg


定位到Exit按钮,回到上级菜单。

定位到File systems, 按回车键:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值