我无法打破GDB和QEMU

时间:2018-09-06 22:01:45

标签: linux linux-kernel gdb kernel qemu

我正在使用 GDB和QEMU 调试Linux内核(最新版本)。

我已在配置文件中将 DEBUG_INFO设置为是

这就是我所说的QEMU:

$> qemu-system-x86_64 -snapshot -m 4G -serial stdio -kernel ~/Documents/kernel/arch/x86_64/boot/bzImage -initrd ~/D\ ocuments/kernel/initrd/initrd_x86_64.gz -append "root=/dev/sda1 ignore_loglevel" -s 当然还有GDB:

$> gdb vmlinux

然后在gdb中:

(gdb)> target remote :1234

所以没什么了不起的。

它停止QEMU。我设置了断点,该断点似乎照常工作,然后键入“ continue”。恢复执行QEMU。

但是,即使到达我的函数(我看到在函数内部设置的内核消息printk),gdb也不会停止。

$> qemu-system-x86_64 --version QEMU emulator version 2.12.0 (Debian 1:2.12+dfsg-3) Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

$> gdb --version GNU gdb (Debian 8.1-4) 8.1

我不知道下一步该怎么做。 任何帮助将不胜感激。

PS:作为参考,我正在编写一个键盘记录程序作为Linux驱动程序。因此,我正在注册一个新的键盘通知程序,而这是失败的键盘通知程序。

PS2:我也尝试了他们在stack overflow question上建议的设置硬件断点的方法,但是它并没有改变任何东西,同样的问题。

谢谢。

朱利安

0 个答案:

没有答案