如何在使用QEMU和gdb调试Linux内核时加载Linux模块?
我正在尝试用QEMU和gdb调试Linux内核中的函数“apply_relocate_add”。 此函数在内核加载新模块时调用 Qemu命令:如何在使用QEMU和gdb调试Linux内核时加载Linux模块?,linux,linux-kernel,gdb,qemu,Linux,Linux Kernel,Gdb,Qemu,我正在尝试用QEMU和gdb调试Linux内核中的函数“apply_relocate_add”。 此函数在内核加载新模块时调用 Qemu命令: $ qemu-system-x86_64 -kernel /boot/vmlinuz-5.0.0-23-generic -append "console=ttyS0 nokaslr" -initrd ramdisk.img -m 512 -s -S 但是断点没有被触发。我认为内核没有加载模块。如何加载模块并调试此函数?您需要让Gdb知道还有其他符号。
$ qemu-system-x86_64 -kernel /boot/vmlinuz-5.0.0-23-generic -append "console=ttyS0 nokaslr" -initrd ramdisk.img -m 512 -s -S
但是断点没有被触发。我认为内核没有加载模块。如何加载模块并调试此函数?您需要让Gdb知道还有其他符号。我想你可以在互联网上找到Gdb插件脚本的例子来实现这一点。你有没有像ramdisk.img那样把任何可用的模块放到guest中@0andriy这不是一个符号问题,因为apply\u relocate\u add是一个内核符号。
(gdb) b apply_relocate_add
(gdb) c