2016-11-16 15 views
1

Я скомпилировал GDB 7.8 для собственной отладки на моей плате Arndale 5250, linaro 3.12 (2013). GDB был настроен как «arm-linux-gnueabihf» и построен с использованием статически связанных библиотек. Он отлично работает на плате, но в режиме записи и воспроизведения. Он генерирует следующее сообщение, когда наткнулся на PRINTF заявление:Процесс записи GDB не поддерживает запрос ioctl на ARM

"Process record and replay target doesn't support ioctl request 0x7efff06c() 
    (null)Process record: inferior program stopped.” 

    [process 2169] #1 stopped. 
    0x76f0f704 in ??() from /lib/arm-linux-gnueabihf/libc.so.6 

Когда пошли дальше он не может отладить больше.

(gdb) n 
    Cannot find bounds of current function 

Я считаю, что это из-за недостающих библиотек на целевой платформе. Обратите внимание, что когда я построил GDB, я скопировал только его exe на целевую плату Arndale, а не на библиотеки. Я думал, что статическая связь с библиотеками сделает эту задачу. Любая идея, как я могу запускать запись процесса и воспроизведение в архитектуре ARM, как обычно, на моей машине x86?

ответ

0

Функция записи процесса gdb работает, выполняя каждую инструкцию по сборке и записывая ее эффекты. При вызове в ядро ​​он также должен знать последствия системного вызова. ioctl представляет особый вызов здесь, потому что существует много возможных вызовов iocctl.

Из описания кажется, что ваш libc использует ioctl, который gdb еще не знает. В этом случае нет решения, кроме как реализовать поддержку этого вызова в gdb.

 Смежные вопросы

  • Нет связанных вопросов^_^