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.youkuaiyun.com/sanlinux/archive/2010/07/10/5725995.aspx
《Android中使用arm-eabi-gdb和vim进行调试 》
尤其注意在target remote的情况下运行的命令是c,而不是run。
来自:http://blog.youkuaiyun.com/sanlinux/article/details/5727293
本文介绍如何在QEMU虚拟机环境下编译并调试带有调试信息的Linux内核,包括配置内核选项、编译生成内核映像、设置启动参数及使用gdb进行调试的过程。
708

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



