Как получить выходные данные из gdb.execute в PythonGDB (GDB 7.1)?

В настоящее время я пишу скрипт Python GDB. Проблема в том, что он должен быть совместим с GDB 7.1. Итак, я сначала написал скрипт для GDB 7.3.1 и использовал следующую функцию для получения выходных данных команды gdb (GDB 7.3.1):

myvar = gdb.execute("info target", False, True)

Последний параметр этой функции заключается в том, что она должна возвращать результат в виде строки (что имеет смысл; зачем еще мне выполнять такую команду ;))

В GDB версии 7.1, хотя кажется, что последний параметр недоступен, поэтому эта строка(GDB 7.1):

myvar = gdb.execute("info target", False)

возвращает None.

Есть ли шанс получить выходные данные этой команды? Я уже пытался перенаправить стандартный вывод моего скрипта python в файл,затем загружается этот файл, но, по-видимому, стандартный ввод и вывод моего скрипта python перезаписывается средой gdb, поэтому выходные данные команды gdb.execute не записываются в мой файл.

Единственное, о чем я мог бы подумать сейчас, это обернуть свой скрипт bash скриптом bash, который сначала открывает gdb со скриптом python, который выполняет различные команды, а затем перекладывает его в файл. Затем снова откройте gdb, но с другим скриптом python, который загружает файл, анализирует его, а затем выполняет другие команды на основе входных данных из файла и так далее. Но это действительно самое уродливое решение, которое я могу придумать.

Итак, есть ли способ получить выходные данные gdb.execute в GDB 7.1?

6
задан Uhlo 24 January 2012 в 12:11
поделиться