[pyar] Explorando los frames con pdb
Facundo Batista
facundobatista en gmail.com
Mar Sep 14 12:21:48 ART 2010
Buenas!
Corriendo las pruebas de unidad de un proyecto, encontré algo raro.
Más allá de eso raro, me di cuenta que no sé explorar con pdb el
stack.
O sea, tengo este stack:
(Pdb) print "\n".join(str((i, x)) for i, x in
enumerate(inspect.getouterframes(inspect.currentframe())))
(0, (<frame object at 0xa3f02f4>, '<stdin>', 1, '<module>', None, None))
...
(11, (<frame object at 0x9fdb814>,
'/usr/lib/python2.6/dist-packages/twisted/internet/defer.py', 125,
'maybeDeferred', [' result = f(*args, **kw)\n'], 0))
(12, (<frame object at 0x9eecacc>,
'/usr/lib/python2.6/dist-packages/twisted/trial/unittest.py', 733,
'_run', [' self.getSuppress(),
method)\n'], 0))
(13, (<frame object at 0x9e8097c>,
'/usr/lib/python2.6/dist-packages/twisted/trial/unittest.py', 764,
'deferTestMethod', [' d = self._run(self._testMethodName,
result)\n'], 0))
(14, (<frame object at 0x9fcd04c>,
'/usr/lib/python2.6/dist-packages/twisted/internet/defer.py', 441,
'_runCallbacks', [' self.result =
callback(self.result, *args, **kw)\n'], 0))
(15, (<frame object at 0x9e718d4>,
'/usr/lib/python2.6/dist-packages/twisted/internet/defer.py', 249,
'addCallbacks', [' self._runCallbacks()\n'], 0))
...
(36, (<frame object at 0x82e78f4>, './contrib/test', 130, '<module>',
[' TestRunner().run(testpath, options.test, options.loops) \n'],
0))
Entonces, yo tengo el pdb que me muestra el prompt "(Pdb)" al
principio del stack.
Puedo ver las variables de lo que vino pasando:
(Pdb) inspect.getouterframes(inspect.currentframe())[-27][0].f_locals['suppressedWarnings']
[]
Pero lo que no sé hacer es que el pdb me quede *adentro* de uno de esos frames.
O sea, que estando en la situación antes descripta, yo haga:
(Pdb) <algo que no se hacer>
...
(Pdb) suppressedWarnings
[]
Obviamente, lo quiero no solo para explorar el valor de la variable,
sino para poder tirar cualquier expresión de Python en ese contexto.
Ideas?
Muchas gracias, slds.
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
More information about the pyar
mailing list