2012-02-08 41 views
8

我從Rails 3.0遷移到3.2。如何在Rails 3.2中找到「SystemStackError(堆棧級別太深)」的原點

我有一個錯誤,當我嘗試顯示一個網頁,只有這個小堆棧跟蹤:

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 /回報率,有一種方法可以列出所有調用的方法,作爲一個上市?

回答

4

您可以嘗試使用Pry和railscast http://railscasts.com/episodes/280-pry-with-rails,然後您可以在可能的位置設置斷點並手動逐步進行。

+4

如果他想撬動他,他需要[pry-nav](https://github.com/nixme/pry-nav)插件:)我也推薦[pry-stack_explorer](https:/ /github.com/pry/pry-stack_explorer)如果他想導航callstack – horseyguy 2012-02-08 15:24:04

+0

謝謝,但不幸pry-nav不能用我的配置。 我使用rdebug進行了測試,但在WEBrick初始化之後斷點不工作(進程分叉?)... – barbacan 2012-02-13 08:58:21

相關問題