В настоящее время я пишу сценарий Python GDB. Проблема в том, что он должен быть совместим с GDB 7.1. Итак, я сначала написал сценарий для GDB 7.3.1 и использовал следующую функцию для получения вывода команды gdb (GDB 7.3.1):
myvar = gdb.execute("info target", False, True)
Последним параметром этой функции является то, что она должна возвращать результат в виде строки (что имеет смысл; иначе зачем мне выполнять такую команду;))
Хотя в GDB версии 7.1 кажется, что последний параметр isn ' t доступен, таким образом, эта строка (GDB 7.1):
myvar = gdb.execute("info target", False)
возвращает None
.
Есть ли шанс получить вывод этой команды? Я уже пытался перенаправить стандартный вывод моего сценария python в файл, а затем загрузить этот файл, но, очевидно, стандартный ввод и вывод моего сценария python - это перезаписано средой gdb, поэтому вывод команды gdb.execute не записывается в мой файл.
Единственное, о чем я мог думать сейчас, - это завершить мой сценарий сценарием bash, который сначала открывает gdb с помощью сценария python, который выполняет различные команды, а затем передает их в файл. Затем снова откройте gdb, но с другим скриптом python, который загружает файл, анализирует его, а затем выполняет другие команды на основе ввода из файла и так далее. Но это действительно самое уродливое решение, которое я могу придумать.
Так есть ли способ получить вывод gdb.execute в GDB 7.1?