Estoy intentando depurar un programa Python e inserté una línea clásica 'import pdb; pdb.set_trace()' en una función, justo antes de una llamada que genera un seguimiento de la pila. Sin embargo, esa llamada parece ignorarse, es decir, no ocurre nada y no aparece un mensaje de pdb.¿qué puede hacer que pdb.set_trace() sea ignorado?
En ese punto del programa, solo hay un hilo activo. No se detectó parche mono del módulo pdb.
Cualquier ayuda sobre lo que podría causar que se ignore la llamada a set_trace es bienvenido. Gracias.
Plataforma Info: Debian Squeeze + extracto de Python 2.6.5
Código:
import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid
de salida:
<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
¿Puede proporcionar el código para reproducir esto? ¿Las llamadas 'print' funcionan desde allí? ¿Has probado 'pdb.pm()'? (http://docs.python.org/library/pdb.html#pdb.pm) – katrielalex
Desafortunadamente no puedo reproducir esto fácilmente (de lo contrario, probablemente ya lo habría conseguido). imprime trabajos, pdb.pm() falla porque no tengo ningún seguimiento de pila en ese punto (y la excepción se come más tarde por alguna extensión C, así que no puedo usar fácilmente pm() y python -i –