Jey*_*ram 14 c arm linux-kernel kgdb
我ARMv7用作目标机器.我已经2.6.34.13为目标编译了Linux源代码.
Target使用minicom通过串口连接Host(Linux Development machine).
Target加载了新内核,并在命令提示符下启用了KGDB.
$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc
$ echo g > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)
显示输入KGDB ...消息并等待命令.
在主机方面,
$arm-none-linux-gnueabi-gdb vmlinux
gdb > set remotebaud 115200
gdb > set debug remote 1
gdb > target remote /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)
在此之后,默认情况下会发生一些命令通信.
qSupported从主机发送到目标.但目标不支持qSuppoted,因此返回$#00.同样?,HC-1发送命令但收到适当的响应.
但qOffsets命令没有收到目标的任何响应.
我怀疑是vmlinux.因为如果我放弃listgdb,它就不会显示10行代码
arch/arm/kernel/head.S : No such file or directory.
Run Code Online (Sandbox Code Playgroud)
注意::在服务器中完成的内核编译.因此在开发机器中没有可用的源.但看起来,arm-gdb正在寻找头部.
我不确定我在做什么错.我需要为整个内核加载符号.在这方面指导我.
最后,主机到目标的通信仅建立了 bcos 的线路延迟。开发机的内核源代码和超时问题没有关系。
对于某些命令的超时问题,qOffset可以qSupported通过使用 GtkTerm 而不是 minicom 作为串口通信工具来解决。不同之处在于 GtkTerm 中的“线路延迟”选项。因此,当此值配置为 ~250 时,此后不会出现超时消息。只需建立连接并在默认断点处等待。如果有人知道如何"line delay"在 minicom 中给出这个将对大家更有帮助。
list是的,当然,我们需要执行命令的源代码。但如果没有这些源代码,我们也可以调试 ie可以在和si, bt的帮助下执行。vmlinuxsystem.map
注意::设置调试远程 1 不是必需的。这提供了主机到命令通信的详细显示。如需更详细的视图,set debug serial 1.