Как найти источник «SystemStackError (слишком большой уровень стека)» в Rails 3.2 - PullRequest
8 голосов
/ 08 февраля 2012

Я мигрирую с Rails 3.0 на 3.2.

У меня возникает ошибка при попытке отобразить страницу только с этой небольшой трассировкой стека:

    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)

Журнал не многословен.

Эта проблема возникает в обратных вызовах: это динамический код, который трудно отладить.

Знаете ли вы инструменты или методы, которые помогли бы мне отладить и найти источник этой проблемы?

Спасибо!

РЕДАКТИРОВАТЬ:

В Ruby / RoR есть способ перечислить все вызываемые методы, как список?

1 Ответ

4 голосов
/ 08 февраля 2012

Вы можете попробовать использовать Pry и railscast на http://railscasts.com/episodes/280-pry-with-rails,, затем вы можете установить точку останова в вероятном месте и выполнить ее вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...