【问题标题】:How to use QEMUn and GDB to debug Kernel如何使用 QEMUn 和 GDB 调试内核
【发布时间】:2017-08-05 03:37:26
【问题描述】:

我想知道如何使用 QEMU 和 gdb 调试 linux 内核。我在我的虚拟机中编译了新的内核 linux-3.18.6。我的VM环境是centos,内核版本是3.10.0-327.el7.x86_64。我使用命令“qemu-system-x86_64 -kernel /usr/src/linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S”来运行新内核。然后,我使用另一个 shell 窗口运行“gdb ./vmlinux”,到目前为止一切都很好。但是,当我继续输入“目标远程本地主机:1234”时。它会打印一些奇怪的消息。像这样

(gdb) target remote localhost:1234

Remote debugging using localhost:1234

Remote 'g' packet reply is too long: 

00000000000000000000000000000000000000000000000063060000000000000000000000000000  
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000f0ff0000000000000200000000f0000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000007f0300000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000801f0000

(gdb) c

The program is not being run.

然后,当我输入“c”时。它将显示“程序未运行。”。我被这个问题困扰了好几天。任何人都可以帮我修复它并让程序运行。非常感谢。

【问题讨论】:

标签: debugging linux-kernel gdb qemu


【解决方案1】:

这是 gdb bug 13984。附加了一个 patch 来解决此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多