前提:
QEMU中已经添加了设备支持,能够正常insmod/rmmod xxx.ko,然后才能有接下来的调试。
step1:打开如下编译选项然后编译Linux内核
CONFIG_DEBUG_INFO = y,
CONFIG_RANDOMIZE_MEMORY =n,
CONFIG_KGDB = y
CONFIG_GDB_SCRIPTS = y
编译后会生成bzImage、vmlinux、vmlinux-gdb.py。
然后在本地~/目录创建.gdbinit文件,并在文件中添加如下指令
add-auto-load-safe-path /Linux/scripts/gdb/vmliunx-gdb.py
step2: 编译要调试的xxx.ko
这里需要注意编译时需要在Makefile中添加-g参数。比如我这里编译后生成xxx.ko
step3:Qemu启动
Qemu的启动参数中加 -s,并在使用上述生成的bzImage来启动qemu,启动后insmod xxx.ko后可以在/sys/module/xxx/sections目录中分别查看其.text/.data/.bss