使用ARMv7
作为目标机器。我编译了Linux源文件2.6.34.13
作为目标。如何在ARM上使用kgdb?
目标通过使用minicom的串行端口与主机(Linux开发机器)连接。
目标加载了新内核,并在命令提示符下启用KGDB。
$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc
$ echo g > /proc/sysrq-trigger
输入KGDB ...消息并等待命令。
在主机端,
$arm-none-linux-gnueabi-gdb vmlinux
gdb > set remotebaud 115200
gdb > set debug remote 1
gdb > target remote /dev/ttyS0
在此之后,一些命令通信在默认情况下发生的。
qSupported
从主机发送到目标。但是qSuppoted不被目标支持,所以返回$#00。类似地,?
,HC-1
命令被发送但是收到适当的响应。但是
qOffsets
命令没有收到来自目标的任何响应。
我怀疑vmlinux。因为如果我给list
在gdb,它没有显示10行的代码,而不是它说
arch/arm/kernel/head.S : No such file or directory.
注::编译内核服务器来完成。所以在开发机器中没有可用的资源。但是arm-gdb寻找head.S似乎。
我不知道我在做什么错误。我需要为整个内核加载符号。在这方面指导我。
我不知道,但你有没有“主机”上编译内核被用于调试? &你没有把代码移动到其他地方? – anishsane
这就是为什么它无法找到源代码? – anishsane
'kgdb'是否需要源代码可用?也许有一个命令行选项告诉'kgdb'不要查找代码。 – BenjiWiebe