远程'g'数据包回复太长了aarch64 arm64

时间:2014-12-10 21:58:13

标签: linux kgdb

我正在尝试设置KGDB来调试我们的arm64内核。我的设置是目标在内核3.14上运行(一些arm64 kgdb补丁后端移植),在主机上我使用了linaro工具链4.8 aarch64-linux-gnu-gdb,每当我发出:

target remote /dev/ttyS0

我收到了错误消息:

Remote 'g' packet reply is too long:

我在这个问题上搜索了很多,但没有一个能为我解决问题。我认为这个问题特定于arm64。有没有人有机会知道如何继续?

1 个答案:

答案 0 :(得分:0)

启发了这里的问题: https://answers.launchpad.net/gcc-arm-embedded/+question/193249

我找到了解决方案。发布之前

target remote /dev/ttyS0

执行以下操作

set tdesc filename aarch64.xml

我从最新的gdb源代码中获取了aarch64.xml:gdb-7.8 / gdb / features / aarch64.xml。通过这样做,我们指示GDB客户端接受比最初预期更多的寄存器。

根本原因似乎是GDB客户端只需要31个寄存器并注册SP,PC,CPSR,但内核gdb存根不仅返回那些寄存器而且返回其他FPU寄存器,这会导致错误消息:

Remote 'g' packet reply is too long: