1.下载kernel
去www.kernel.org下载
2.编译kernel
make menuconfig
vim .config中
打开kgdb调试相关的项
关闭
CONFIG_DEBUG_RODATA = n 该选项是将内核的一些内存区域空间设置为只读,这样可能导致kgdb的 设置软断点功能失效。所以推荐将该选项关闭。 Location: -> Kernel hackingmake
3.安装qemu
sudo apt-get install qemu
6. sudo modprobe kvm-intel7.我的电脑是intel处理器,需在bios里开启vt支持(这个之前不知道还要关这个,折腾了半天)
8.下载busybox,制作根文件系统
9.qemu-system-i386 -s -S -kernel linux-3.13.6/arch/i386/boot/bzImage -hda fsroot.img -append "root=/dev/sda init=/bin/ash noapic"
10.另开一终端
gdb vmlinux
target remote localhost:1234
b start_kernel
c
备注:断点设置后,在qemu里没停下来,我系统是64位ubuntu12.04,改天找32位的试试,有网友说是gdb的事,64位需要打补丁。
参考链接:
http://cookingbsd.blog.51cto.com/5404439/925454
http://leave001.blog.163.com/blog/static/162691293201243110252209/
http://blog.chinaunix.net/uid-26009923-id-3825761.html