Как использовать 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

  • Можем ли мы использовать код C в Python?
  • Отсутствует GOMP_parallel или GOMP_4.0 в (Docker) jupyter / all-spark-notebook: как R, так и Python
  • Показывать графики matplotlib в Ubuntu (подсистема Windows для Linux)
  • Правильное поведение демона (из PEP 3143) объяснено
  • Ошибка сельдерея: time.get time out
  • s3 socket.error: Сброс соединения с помощью peer python
  • основы создания консоли MML в Python
  • Могу ли я получить стек вызовов python с linux perf?
  • Python - лучший язык программирования в мире.