Как позволить 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)
Каков наилучший способ решить эту проблему?
У меня полностью заканчиваются решения, и было бы здорово узнать, что кто-то уже пытался сделать то же самое.