WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

Railsでruby-debugを使ってデバッグする

      2015/06/13

debuggerのインストール

下記コマンドでインストール。

gem install ruby-debug

もしくはGemfileに以下を追記してbundle install を実行。

group :test, :development do
  gem 'ruby-debug'
end

rubyのバージョンが1.9.xの場合は、bundle install を実行したときに、”rbx-require-relative requires Ruby version ~> 1.8.7″みたいなエラーがでるので以下のように記述する。

gem 'ruby-debug19'

に変更する。

使い方

config/environments/development.rb に以下の2行を追記してWebrickを起動。

  require 'ruby-debug'
  Debugger.start

もしくは、以下のようにデバッグオプションを付加してWebrickを起動する。

rails s --debug

ソースコードのdebugしたい箇所にdebuggerと記述(viewの場合は <% debugger %>)。

class HogeController < ApplicationController
  def index
    〜(略)〜
    debugger
    〜(略)〜
  end
end

debuggerが仕込まれた箇所を通るように、ブラウザにアクセスするなどしてリクエストを送ると、Webricksが停止していかのように表示される。

(rdb:4)

ここで、”p @hoge”などと入力してEnterすると@hogeの内容を確認することができる。また、listと入力すると周辺のソースを表示することができる。
主要なコマンドの一覧は下表のとおり。

h[elp] コマンド一覧の表示
h[elp] command commandのヘルプを表示
l[ist] 周辺コードの確認
p var 変数varの値を出力

わからなくなったら、”h”, “h command“で確認。

デバッグ中はサーバが一時停止するので、デバッガを終了して処理を再開するときは以下のようにcontinueを実行する。

(rdb:4) continue

省略してcだけでもOK。

(rdb:4) c

 - Ruby on Rails , , ,