1、启动内核
cd ~/LinuxKernel/
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img
2、使用 gdb 跟踪调试内核
使用 QEMU 启动 Linux 内核并执行调试
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S
这个命令的主要目的是在启动虚拟机时,启用 GDB 调试支持。一旦虚拟机启动并暂停,我们就可以使用 GDB 连接到虚拟机的调试服务器,然后对内核进行调试和分析。
参数解释:
- -S
-S 在启动时暂停虚拟机 - -s
-s 启用 GDB 调试服务器模式
# 打开 GDB 调试器
$ gdb
# 在gdb界面中targe remote之前加载符号表
(gdb)file linux-3.18.6/vmlinux
# 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行
(gdb)target remote:1234
# 断点的设置可以在target remote之前,也可以在之后
(gdb)break start_kernel