Используете gdbserver на удаленном устройстве с одним последовательным подключением?

Я отлаживаю встроенное приложение, которое работает в среде Linux на удаленной цели. Единственный используемый интерфейс для платы - это единственный последовательный интерфейс. Прямо сейчас это подключено к / bin / sh при инициализации. Я подключаюсь к minicom, (повторно) загружаю свое приложение с помощью lrzsz и использую printfs для выполнения работы.

Я хотел бы использовать gdbserver для более детальной отладки, но подключение кажется проблемой. Обычно я подключаюсь через Ethernet, но это недоступно на этом оборудовании. Я понимаю, что gdbserver может работать по последовательной линии, но сейчас мой единственный порт связи принадлежит оболочке.

Есть ли хороший способ обойти это ограничение? В идеале я хотел бы иметь возможность запустить gdbserver и вернуться к оболочке, когда я закончу. Я попытался запустить gdbserver из оболочки, используя один доступный последовательный интерфейс (/ dev / ttyS0), а затем выйти из minicom и запустить GDB на моем хосте, но он беспорядочный и не работает (даже после соответствующей настройки remotebaud). Должно это сработать? Что в этой ситуации разумно делать?


person laughingcoyote    schedule 31.05.2016    source источник


Ответы (1)


Как насчет решения старой школы? Используйте PPP для запуска IP-сети по последовательной линии. Затем вы можете подключиться к вашей плате по ssh (или даже telnet) и одновременно подключиться к GDB. Учитывая ваши обстоятельства, я бы рекомендовал запускать pppd вручную, чтобы снизить риск блокировки из-за неправильной конфигурации. Ссылка LDP датируется 2000 годом, но содержит много советов по отладке.

person Adrian Cox    schedule 31.05.2016