Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用QEMU和gdb调试Linux内核时加载Linux模块?_Linux_Linux Kernel_Gdb_Qemu - Fatal编程技术网

如何在使用QEMU和gdb调试Linux内核时加载Linux模块?

如何在使用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和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知道还有其他符号。我想你可以在互联网上找到Gdb插件脚本的例子来实现这一点。你有没有像ramdisk.img那样把任何可用的模块放到guest中@0andriy这不是一个符号问题,因为apply\u relocate\u add是一个内核符号。
(gdb) b apply_relocate_add
(gdb) c