使用gdb跟踪调试linux内核
使用gdb跟踪调试linux内核
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S
- linux-3.18.6/arch/x86/boot/bzImage是linux内核镜像
- rootfs.img是临时的根文件系统
- -S 在系统启动后卡在startup
-s 创建服务端在-gdb tcp::1234,若要更改使用-gb tcp::xxxx
另开一个shell窗口
- gdb
- (gdb) file linux-3.18.6/vmlinux 加在内核调试信息
TIPS:
vmlinux
主要用于内核开发和调试。内核开发人员使用它进行内核编译、链接和调试。
bzImage
是实际被引导加载程序加载并在系统上运行的内核映像文件。它被设计为在引导过程中直接加载到内存中执行。 - (gdb) target remote:1234
- (gdb) break start_kernel