关闭 kASLR 以使用 qemu 和 gdb 调试 Linux 内核

Win*_*ton 4 linux debugging ubuntu gdb qemu

我正在尝试使用 qemu 和 gdb 调试 Linux 内核。问题是 gdb 不会在断点处停止。我搜索了一下,发现关闭 kASLR 可能会有所帮助,因为 kASLR 会混淆 gdb。

-- 在客户机上安装该内核。

+- 在来宾上安装该内核,通过在内核命令行中添加“nokaslr”来关闭 KASLR。

不幸的是,我不知道将 nokaslr 添加到命令行意味着什么以及执行此操作的方法。任何想法,将不胜感激。

Cir*_*郝海东 5

qemu-system-x86_64 -append nokaslr

如果您使用 QEMU 本身来加载内核-kernel,而不是像使用Ubuntu ISO 安装程序那样在磁盘映像内放置引导加载程序,则可以采用这种方法

Linuxnokasrl命令行参数禁用 KASRL。

从 v4.12 开始就需要这样做,当时 KASLR 默认打开。

这是一个使用它的高度自动化的 Buildroot 示例。