27 votos

impresión de python seguimiento de la pila, sin excepción, ser criado

Algo diferente sucede con uno de mi clase las variables de instancia. Quiero hacer de la variable a una propiedad, y cada vez que se accede quiero imprimir el seguimiento de la pila de todo el código que condujeron a ese punto, por lo que puedo ver en dónde se descompusieron. ¿Cómo puedo imprimir la traza de la pila cuando no es la excepción ha sido planteado? Sé que si hay una excepción que puedo hacer algo como traceback.format_tb(sys.exc_info()[2]).

También lo que podría ser útil es para imprimir sólo los últimos 3 a 4 niveles, desde los primeros son, probablemente, no va a ser tan interesante.

43voto

delnan Puntos 52260

traceback.print_stack():

>>> def f():
...   def g():
...     traceback.print_stack()
...   g()
...
>>> f()
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in f
  File "<stdin>", line 3, in g

Edit: también puede utilizar extract_stack, tomar una rebanada (por ejemplo stack[5:] para excluir a los primeros 5 niveles) y el uso format_list para obtener una listos para imprimir stacktrace ('\n'.join(traceback.format_list(...)))

1voto

lambacck Puntos 4955

http://docs.python.org/library/traceback.html#traceback.print_stack

0voto

Trate de usar el trace módulo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X