Debugging: paso a paso a través de la secuencia de comandos de Python usando gdb?
Digamos que tenemos el siguiente script de Python mega simple:
print "Initializing"....
a=10
print "Variable value is %d" % (a)
print "All done!"
... y decir, me gustaría depurar este script colocando un punto de interrupción en la líneaa=10
, y luego siguiendo el guión.
Ahora, me gustaría usargdb
para esto, porque me gustaría depurar los enlaces de Python que pueden venir como parte de un objeto compartido .so
) biblioteca - por lo tanto, idealmente colocaría un punto de interrupción en una línea de código de Python, y luego "entraría" en la parte C del objeto compartido ... Tenga en cuenta queDebuggingWithGdb - PythonInfo Wiki realmente no declara explícitamente que esto es posible)
El problema es:gdb
por sí solo no puede reconocer realmente los puntos de interrupción, colocados en una línea de script de Python:
$ gdb python
GNU gdb (GDB) 7.3.50.20110806-cvs
...
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
(gdb) b test.py:3
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (test.py:3) pending.
(gdb) run test.py
Starting program: /usr/bin/python test.py
...
... y si bien todo el script de Python se ejecuta dentro degdb
, el punto de interrupción simplemente nunca se alcanza.
Entonces, es lo que quiero hacer, en lo posible congdb
; y si no, ¿qué otras alternativas tendría para algo similar?