Как использовать Python для создания подпроцесса GDB и отправки команд динамически на основе вывода?

Вот общий пример того, что мне нужно сделать:

Например, я бы инициировал обратную трассировку, отправив команду «bt» в GDB из программы. Затем я бы поискал слово «pardrivr» и получил номер строки, связанный с ним, используя регулярные выражения. Затем я буду вводить «f [line_number_of_pardriver]» в GDB. Этот процесс будет повторяться до тех пор, пока в конечном итоге не будет получена правильная информация.

Я хочу использовать Python для этого, создав подпроцесс GDB. Затем я хочу отправить команды в GDB и прочитать вывод из GDB. Я бы использовал вывод для отправки дополнительных команд в GDB динамически на основе содержимого вывода.

Может ли кто-нибудь объяснить простой пример того, как это сделать?

Спасибо огромное!

One Solution collect form web for “Как использовать Python для создания подпроцесса GDB и отправки команд динамически на основе вывода?”

Использовать Pexpect: http://pexpect.readthedocs.org/ru/latest/examples.html

Более базовым вариантом является использование subprocess.Popen().communicate() :

http://pymotw.com/2/subprocess/#popen2

  • Ошибка VideoCapture при установке OpenCV 2.4.13 или 3.x на Fedora 26 25 24 23 или 22 с помощью ffmpeg и python 2.7
  • Python: как убить дочерний процесс (ы), когда родитель умирает?
  • обнаруживать новые или измененные файлы с помощью python
  • Установка обработчика сигналов с помощью Python
  • После установки Anaconda команда conda завершается с "ImportError: no module named conda.cli"
  • Как я могу имитировать вход для stdin для pyunit?
  • google cloud sdk: установить среду variable_ python -> linux
  • Как удалить предварительный просмотр камеры до малины pi
  • pip и virtualenv (без virtualenvwrapper): pip install имя_пакета разрешает разрешение, но с использованием sudo устанавливает глобально
  • sys.stdin не закрывается на ctrl-d
  • В Python самый быстрый способ создать список файлов в каталоге с определенным расширением
  • Python - лучший язык программирования в мире.