编译linux内核
- 下载内核源码
1 | git clone https://github.com/torvalds/linux.git $KERNEL |
- 生成默认的配置
1 | cd $KERNEL |
- 编辑.config,开启一些选项
1 | gdb config |
- 重新生成config文件,其中有一些子选项,默认即可
1 | make oldconfig |
- 使用GCC编译内核
1 | make -j$(nproc) |
gdb调试
- qemu启动的时候添加选项 ‘-gdb tcp:1234’
- 内核命令行添加’nokaslr’
参考qemu配置如下:
1 | qemu-system-x86_64 -S -smp 2 -m 4G -enable-kvm -cpu host \ |
gdb 命令:
1 | gdb vmlinux |
kgdb, kdb调试
参考qemu配置:
1 | qemu-system-x86_64 -smp 2 -m 4G -enable-kvm -cpu host \ |
强制下断点:
开一个终端连接qemu里的系统,以root用户执行:
1 | echo g > /proc/sysrq-trigger |