如何使用cgdb + qemu调试linux内核模块
前言
Linux 代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试,则对学习Linux kernel以及解决平时遇到的问题会大有帮助。本文将讲解如何使用cgdb + qemu的方式调试Linux内核代码,所使用的测试机操作系统版本是CentOS Linux release 7.2.1511 (Core)
1.编译额内核
1) 获取内核代码
内核代码下载地址:[https://www.kernel.org/] (https://www.kernel.org/),本文以4.9.153版本作为演示. 如下图,点击对应版本的 tarball 链接下载
下载完成后将tar文件拷贝到测试机/root目录并进行解压。
# cd /root
# tar xf linux-4.9.153.tar.xz
2) 编译出支持调试的内核
配置编译选项
# cd linux-4.9.153
# make menuconfig
定位到Enable loadable module support:
按空格键去掉选项Module signature verification,防止加载模块时如下报错: module verification failed: signature and/or required key missing - tainting kernel
定位到Exit按钮,回到上级菜单。
定位到File systems, 按回车键:
本文详细介绍了如何使用cgdb和qemu调试Linux内核模块,包括获取和编译支持调试的内核,构建initramfs根文件系统,启动虚拟机以及使用cgdb设置断点进行调试的步骤。
最低0.47元/天 解锁文章
262

被折叠的 条评论
为什么被折叠?



