相关疑难解决方法(0)

将GDB通过串口连接到KGDB构建内核的问题


我想通过串口ttyS0从我的64位suse机器调试MIPS linux驱动程序.使用的gdb通过LAN调试应用程序而不是kgdb over serial.我使用此页面和其他一些内容来启动调试,但没有最终结果.

我的内核使用以下设置编译:

CONFIG_MAGIC_SYSRQ=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
# CONFIG_KGDB_TESTS is not set
CONFIG_CMDLINE="kgdboc=ttyS0,115200"
Run Code Online (Sandbox Code Playgroud)

如果我运行gdb:

gdb vmlinux
(gdb) set remotebaud 115200
(gdb) set debug remote 1
(gdb) target remote /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

我可以观察以下输出:

输出(GDB_TERMINAL):

(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
Sending packet: $qSupported:qRelocInsn+#9a...Ack
Timeout in mid-packet, retrying
Timed out.
Timed out.
Ignoring packet error, continuing...
Packet qSupported (supported-packets) is supported
warning: unrecognized item "qSupported:qRelocIns" in "qSupported" response
Sending packet: $Hg0#df...Nak
Sending packet: $Hg0#df...Ack
Packet received: Hg0
Sending …
Run Code Online (Sandbox Code Playgroud)

c linux kernel linux-kernel kgdb

7
推荐指数
1
解决办法
6140
查看次数

如何使用QEMU和KGDB调试Linux内核?

我已经能够使用以下方法来启动基于PowerPC的系统(具体来说为MPC8544DS)来调用qemu(v1.7.0)

qemu-system-ppc -M mpc8544ds -m 512 -kernel zImage -s -nographic -initrd busyboxfs.img -append "root=/dev/ram rdinit=/bin/sh kgdboc=ttyS0,115200 kgdbwait"
Run Code Online (Sandbox Code Playgroud)

其中zImage是一个自定义的交叉编译Linux内核(v2.6.32),已启用并编译了KGDB(用于启动代码调试),并且busyboxfs.img是基于busybox的rootfs。

由于我正在使用-sQemu 的标志,因此可以使用跨gdb闯入内核,如下所示:

(gdb) target remote localhost:1234
Remote debugging using localhost:1234
mem_serial_in (p=<value optimized out>, offset=5) at drivers/serial/8250.c:405
405  }
Run Code Online (Sandbox Code Playgroud)

但是,如果我删除该-s标志并尝试闯入内核,/dev/ttyS0则会给我一个权限被拒绝的错误:

(gdb) set remotebaud 115200
(gdb) target remote /dev/ttyS0
permission denied 
Run Code Online (Sandbox Code Playgroud)

是因为它被Qemu保留了吗?另外,在互联网上的示例中ttyAMA0,我已经了解了kgdboc ,该AMBA总线代表特定于基于ARM的系统的总线。我们对PowerPC有类似的东西吗?我在这里做错什么了吗?

linux embedded qemu powerpc linux-kernel

6
推荐指数
2
解决办法
2982
查看次数

标签 统计

linux ×2

linux-kernel ×2

c ×1

embedded ×1

kernel ×1

kgdb ×1

powerpc ×1

qemu ×1