Debug Linux Kernel With KGDB
使用KGDB调试Linux Kernel(20181114)
Grub启动命令行中添加kgdboc=ttyS0,115200 kgdbwait nokaslr
a) rodata=off这条好像没什么用?待验证
b)必须添加nokaslr,否则vmlinux符号会对不上,无法正常显示debug信息和下断点
- 使用socat做转发
a) sudo socat -d -d /tmp/vboxsock PTY- 记下打印出的转发设备,比如/dev/pts/4
- 这个操作要在串口连接虚拟机前做,不然就会直接退出,连接不上了
- 控制台不要关闭
- 如果没有权限连接/dev/pts/4,可以在gdb中执行下面的命令开启权限
sudo chmod 777 /dev/pts/4
- 不要在start_kernel处下断点,因为kgdb在start_kernel执行后才初始化,所以不会在start_kernel断下来
- References
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.