2012-02-08 11 views
8

Migro de Rails 3.0 a 3.2.Cómo encontrar el origen de un "SystemStackError (nivel de pila demasiado profundo)" en Rails 3.2

Tengo un error cuando intento para mostrar una página, sólo con este pequeño StackTrace:

SystemStackError in UserController#show 

    stack level too deep 
    SystemStackError (stack level too deep): 
     activesupport (3.2.1) lib/active_support/callbacks.rb:415 


     Rendered /home/barbacan/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (55.3ms) 
     Rendered /home/barbacan/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (4.0ms) 
     Rendered /home/barbacan/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (61.4ms) 

Log no es prolijo.

Este problema se produce en las devoluciones de llamada: es un código dinámico y es difícil de depurar.

¿Conoces herramientas o métodos que me ayudarían a depurar y encontrar la fuente de este problema?

Gracias!

EDIT:

en Ruby/RoR, hay una manera de enumerar todos los métodos llamados, como una lista?

Respuesta

4

Puede intentar usar Pry y railscast en http://railscasts.com/episodes/280-pry-with-rails, luego puede establecer un punto de interrupción en una ubicación probable y realizar el paso manualmente.

+4

Si quiere avanzar con palanca necesitará el plugin [pry-nav] (https://github.com/nixme/pry-nav) :) También recomiendo [pry-stack_explorer] (https://github.com/pry/pry-stack_explorer) si quiere navegar por la pila de llamadas – horseyguy

+0

gracias, pero desafortunadamente pry-nav no funciona con mi configuración. Probé con rdebug, pero los puntos de interrupción no funcionan después de que se haya inicializado WEBrick (¿el proceso se bifurca?) ... – barbacan

Cuestiones relacionadas