2010-08-14 22 views
20

Estoy ejecutando una aplicación de GUI de Python. Quiero invocar y controlar GDB a partir de él, como cargar un archivo ejecutable, establecer puntos de interrupción, etc. Veo que GDB tiene una interfaz de línea de comando que se puede utilizar enviando cadenas al proceso GDB, pero quiero hacerlo al estilo Python. . ¿Hay un gdb.py? Veo que la rama "arquero" tiene algo así como "importar gdb", pero no funciona en la instalación predeterminada de Ubuntu de Python. ¿Dónde obtengo este módulo o hay algún otro método para controlar GDB de Python?Invocar y controlar GDB desde Python

+0

A cómo hacer la pregunta ABC: http://stackoverflow.com/questions/4060565/how-to-script-gdb-with-python-example-add-breakpoints-run-what-breakpoint-d –

Respuesta

16

Sí, puede controlar GDB desde Python. La documentación de Python está en http://sourceware.org/gdb/current/onlinedocs/gdb/Python.html#Python.

Si quieres un ejemplo de algunas secuencias de comandos, echar un vistazo a http://tromey.com/blog/?p=548

+0

thx . Ya he mencionado esta rama arquero en mi pregunta. parece ser un trabajo en progreso. Voy a darle una oportunidad. pero lo que realmente quiero es un módulo de Python que se conecte con el GDB existente, no con el arquero. – Seeker

2

pygdbmi es lo que desea.

Con ella fue capaz de restablecer un objetivo incrustado desde Python utilizando la siguiente:

from pygdbmi.gdbcontroller import GdbController 
if __name__ == '__main__': 
    gdbmi = GdbController() 
    response = gdbmi.write('b main') 
    response = gdbmi.write('target remote localhost:2331') 
    response = gdbmi.write('mon reset 0') 
    response = gdbmi.write('c') 

gdbgui proporciona un ejemplo mucho más fresco.

Cuestiones relacionadas