2014-12-10 3 views
0

Я пытаюсь настроить KGDB для отладки ядра arm64. Моя установка является то, что цель работает на ядре 3.14 (с некоторыми arm64 kgdb пластырей назад перенесенных), на хосте я использовал Линаро набор инструментов 4,8 aarch64-Linux-гну-GDB, и всякий раз, когда я выдаю:Удаленный ответ «g» пакет слишком длинный aarch64 arm64

target remote /dev/ttyS0 

Я получил сообщение об ошибке:

Remote 'g' packet reply is too long: 

Я много искал проблему, и никто из них не работал для меня. Я думаю, что эта проблема специфична для arm64. Кто-нибудь здесь случайно знает, как действовать?

ответ

0

Вдохновленный вопрос здесь: 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: 
Смежные вопросы