2011-05-12 21 views
5

Recientemente me di cuenta con sorpresa de que la versión actual de GDB soporta el scripting de python, lo que muy probablemente significa que puedo trazar variables mientras depuro el programa, algo con lo que soñé hace mucho tiempo. Sin embargo, rápidamente me quedo atascado porque no puedo obtener el valor de una variable "fuera de" GDB y asignarlo a una variable de python. El método debe estar dentro del módulo gdb, pero no sé a qué función llamar. ¿Cualquiera sabe? Dime por favor :) ¡Gracias!¿Cómo asignar variable a python usando el nuevo soporte de python de GDB?

Respuesta

3

acceder a la variable x en el marco de GDB seleccionado en ese momento, puede utilizar

x = gdb.selected_frame().read_var("x") 

Esto asignará una instancia gdb.Value a x.

+0

¡Gracias! Su respuesta es muy útil, y el enlace es informativo. Solo otra pregunta: tengo una matriz Fortran asignada a una variable python "x" de esta manera, y me gustaría convertir este tipo gdb.Value a una lista python - Tengo que hacer este elemento por elemento, ¿verdad? Porque no parece haber una sola función para lograr esto. ¡Gracias! – mayasky

+0

@mayasky: Debería ser posible convertir directamente la dirección a algunos 'ctypes' o matriz NumPy, pero no sé exactamente cómo. –

Cuestiones relacionadas