nought

Nought is never in danger.

Rails3.1でdebuggerを使ってデバッグをしてみた

without comments

もう全然やり方が判らなかったんですが、1日かけてやっと判ったので自分用にメモしておきます。

まずはruby-debug19をインストールしておきます。
Railsアプリを作るとGemfileに勝手に追加されてるので、それをコメントアウトするだけです。

次にデバッガーを有効にします。
config/environments/development.rb の最初に

require 'ruby-debug'
Debugger.start

を追記します。

あとはブレイクポイントを仕込みたい箇所に

debugger

を書いておきます。

これでデバックしたロジックを通るように操作するとWebサーバを上げたコンソールでコマンドを使ってデバッグができる様になります。

取りあえず”help”と叩くと使えるコマンドが表示されるので手当たり次第打って見ました。

backtrace delete enable help list ps save thread var
break disable eval info method putl set tmate where
catch display exit irb next quit show trace
condition down finish jump p reload source undisplay
continue edit frame kill pp restart step up

まずは、実行してるソースコードをlistで表示してstepでステップイン、nextでステップオーバーしながらたまにppで変数の確認をすると言う方法でデバックしました。
デバッグが終わったらcontinueで再開します。

他にもコマンドが一杯ありますが、そこまで使いこなせてないです。
しかも、そもそもバグがあった箇所が全然特定出来ませんでした。

デバッグの仕方が判っただけでもヨシとするか。

Written by mongorian-chop

12月 20th, 2011 at 11:59 pm

Posted in 技術

Tagged with

Leave a Reply