我正在尝试设置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。有没有人有机会知道如何继续?
答案 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: