Depuração: percorrendo o script Python usando gdb?

Digamos que tenhamos o seguinte script Python mega-simples:

print "Initializing"....
a=10
print "Variable value is %d" % (a)
print "All done!"

... e diga: eu gostaria de depurar esse script colocando um ponto de interrupção na linhaa=10 e, em seguida, percorrer o script.

Agora, eu gostaria de usargdb para isso, porque eu gostaria de depurar as ligações Python que podem fazer parte de um objeto compartilhado .so) - portanto, idealmente, colocaria um ponto de interrupção em uma linha de código Python e depois "entraria" na parte C do objeto compartilhado ... Observe queDebuggingWithGdb - PythonInfo Wiki não declara explicitamente que isso é possível)

O problema é:gdb por si só não pode realmente reconhecer pontos de interrupção, colocados em uma linha de script 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
...

... e enquanto todo o script Python é executado dentro degdb, o ponto de interrupção simplesmente nunca é alcançad

Então - é o que eu quero fazer, sempre que possível comgdb; e se não, que outras alternativas eu teria para algo semelhante?

questionAnswers(3)

yourAnswerToTheQuestion