如何使用gdb结合qemu调试linux内核源码
1.编译linux内核源码
$make menuconfig
进入选项Kernel hacking选项,选中kernel debugging和Compile kernel with debug info选项,保存退出。
$make
成功编译后产生arch/i386/boot/bzImage
2.从qemu官网下载linux-0.2.img
3.开始测试
【使用sda硬盘】
$qemu -S -kernel arch/i386/boot/bzImage -hda ../linux-0.2.img -append "root=/dev/sda"
(Ctr l+ Al t+ 2)

【使用sda硬盘】
或者直接运行:qemu -S -kernel arch/i386/boot/bzImage -hda linux-0.2.img -append "root=/dev/sda" -gdb tcp::1234
等价于:qemu -s -S -kernel arch/i386/boot/bzImage -hda linux-0.2.img -append "root=/dev/sda"
这样是可成功挂载文件系统的。
$netstat -tlnp

$gdb vmlinux

vimgdb效果图

其中的使用细节可参考http://blog.csdn.net/sanlinux/archive/2010/07/10/5725995.aspx
《Android中使用arm-eabi-gdb和vim进行调试 》
尤其注意在target remote的情况下运行的命令是c,而不是run。
来自:http://blog.csdn.net/sanlinux/article/details/5727293
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)