2008-12-19 11 views
33

yo acabamos de este mensaje de error:¿Cómo forzar al rubí a mostrar el rastro de la pila completa?

... 
from c:/ruby/lib/ruby/gems/1.8/gems/... 
... 10 levels... 
from c:/ruby/lib/ruby/gems/1.8/gems/... 
... 

y el error (por supuesto) está escondido en algún lugar de ... 10 levels....

Cómo forzar a ruby ​​a mostrar la traza completa de la pila?

+1

Dupe de http://stackoverflow.com/questions/376513/how-do-i-get-ruby-to-print-a-full-stack-dump-instead-of-a-truncated- uno solo ayer. –

+1

Busqué en el sitio antes de publicar la pregunta, pero no lo encontré. Lo siento. –

+0

No hay problema, la pregunta fue mal etiquetada y no muy bien titulada, arreglé ambas, el nuevo enlace es http://stackoverflow.com/questions/376513/how-do-i-get-ruby-to-print-a -full-backtrace-instead-of-a-truncated-one. –

Respuesta

68
begin 
    # code that raises exception 
rescue StandardError => e 
    puts e.backtrace 
end 
+7

¿Cómo se muestra stacktrace sin capturar una excepción? Solo en operación normal, eso es. –

+9

@ChiragPatel, tal vez quiera usar [Kernel # caller] (http://www.ruby-doc.org/core-1.8.7/Kernel.html#method-i-caller). –

+2

Núm. De llamada del kernel, como mencionó Sony Santos, es absolutamente el camino a seguir para lo que está buscando. Devolverá una matriz de cadenas. Simplemente podría hacer algo como lo siguiente para obtener un rastro limpio de pila en su registro: Rails.logger.info caller.join ("\ n") – slant

Cuestiones relacionadas