Actualmente estoy escribiendo un script de Python GDB. El problema es que tiene que ser compatible con GDB 7.1. Así que empecé a escribir el guión de GDB 7.3.1 y se utiliza la siguiente función para recibir la salida de un comando gdb (BGF 7.3.1):¿Cómo obtener salida de gdb.execute en PythonGDB (GDB 7.1)?
myvar = gdb.execute("info target", False, True)
El último parámetro de esta función es que debe devolver el resultado como una cadena (que hace perfectamente sentido, ¿por qué si no iba a ejecutar un comando;))
En BGF versión 7.1 aunque parece que el último parámetro isn't available por lo tanto esta línea (GDB 7.1):
myvar = gdb.execute("info target", False)
devuelve None
.
¿Hay alguna posibilidad de recuperar la salida de este comando? Ya traté de redireccionar la salida estándar de mi script python a un archivo y luego cargar este archivo, pero aparentemente la entrada y salida estándar de mi script python es overwritten by the gdb environment, por lo que el resultado del comando gdb.execute no se escribe en mi archivo.
Lo único que se me ocurre ahora es ajustar mi script con un script bash que primero abre gdb con un script python que ejecuta varios comandos y luego canaliza eso en un archivo. A continuación, vuelva a abrir gdb pero con otra secuencia de comandos python que carga el archivo, lo analiza y luego ejecuta otros comandos según la entrada del archivo, y así sucesivamente. Pero esta es realmente la solución más fea que se me ocurre.
¿Hay alguna manera de recibir la salida de un gdb.execute en GDB 7.1?