远程“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: