Как позволить Python взаимодействовать с консолью stdout/stdin консоли GDB?

Я пытаюсь провести автоматическое тестирование с помощью встроенного приложения, работающего на микроконтроллере ARM. Для обмена вводом-выводом я настроил Semihosting, используя arm-none-eabi-gdb в качестве клиента GDB:

arm-none-eabi-gdb my_binary.axf -ex "target localhost::3333" -ex "загрузить" -ex "продолжить"

После запуска сеанса GDB я могу использовать printf(), scanf() для взаимодействия с пользователем через консоль GDB.

Сейчас я отчаянно пытаюсь заставить Python читать и писать в/из консоли gdb, чтобы заменить пользователя, но пока результаты были плохими.

Это лучшее решение, которое я пробовал без какого-либо успеха:

  • Создайте новую консоль gdb в отдельный псевдотерминал с помощью следующей команды GDB:

(gdb) новая консоль пользовательского интерфейса /dev/ptyp0

и пусть Python открывает/читает/записывает устройство /dev/ttyp0. Кажется, что соединения установлены правильно, но я не могу ни читать, ни записывать данные из консоли GDB.

(ссылка: https://sourceware.org/gdb/onlinedocs/gdb/Interpreters.html)

Каков наилучший способ решить эту проблему?

У меня полностью заканчиваются решения, и было бы здорово узнать, что кто-то уже пытался сделать то же самое.

0 ответов

Другие вопросы по тегам