远程“g”数据包回复太长aarch64 arm64

远程“g”数据包回复太长aarch64 arm64

问题描述:

我想设置KGDB来调试我们的arm64内核。我的设置是,目标是在内核3.14运行(有一些arm64的kgdb补丁移植),主机我用Linaro的工具链4.8 aarch64-Linux的GNU的GDB,每当我发出:远程“g”数据包回复太长aarch64 arm64

target remote /dev/ttyS0 

我错误信息:

Remote 'g' packet reply is too long: 

我Google上的问题很多,其中没有摸索出适合我。我认为这个问题是针对arm64的。有没有人有机会知道如何进行?

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

我找到了解决办法。发行

target remote /dev/ttyS0 

之前,请执行以下

set tdesc filename aarch64.xml 

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

根本原因似乎GDB客户端仅期待31个寄存器和寄存器SP,PC,CPSR,但内核GDB存根返回不仅那些寄存器但其他FPU寄存器,导致错误消息:

Remote 'g' packet reply is too long: