Rubyデバッグ環境最速構築&デバッグ方法解説

今回は、IDE(Aptana Studio3)上で、Rubyをデバッグする方法についてまとめました。

IDEとRubyバージョンの確認

今回対象にする環境は次の通り。

IDEがAptana Studio以外の、例えばEclipseやRadrails等であったり、Rubyのバージョンが1.9.3以外であったり、mingw32でないRubyインタープリタを使っている場合の動作は確認していない。

逆にいえば、この環境であれば多分動作する。はずである。

 

ここからは、デバッグ環境の構築方法について紹介するが、上記のIDEとRubyインタープリタがインストールされていることを前提に進んでいく。

デバッグ環境の構築

ここからDevKit(DEVELOPMENT KIT)をダウンロードして展開。

展開したら、ruby dk.rb initとruby dk.rb installを実行する。

C:\DevKit>ruby dk.rb init
[INFO] found RubyInstaller v1.9.3 at C:/Ruby193

Initialization complete! Please review and modify the auto-generated
‘config.yml’ file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

C:\DevKit>ruby dk.rb install
[INFO] Updating convenience notice gem override for ‘C:/Ruby193′
[INFO] Installing ‘C:/Ruby193/lib/ruby/site_ruby/devkit.rb’

 

gemを2つダウンロードしてインストール。

 

K:\home\tmp7>gem install linecache19-0.5.13.gem

Temporarily enhancing PATH to include DevKit…
Building native extensions. This could take a while…
Successfully installed linecache19-0.5.13
1 gem installed
Installing ri documentation for linecache19-0.5.13…
Installing RDoc documentation for linecache19-0.5.13…

K:\home\tmp7>gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=C:/Ruby193/include/ruby-1.9.1/ruby-1.9.3-p194

Temporarily enhancing PATH to include DevKit…
Building native extensions. This could take a while…
Successfully installed ruby-debug-base19-0.11.26
1 gem installed
Installing ri documentation for ruby-debug-base19-0.11.26…
Installing RDoc documentation for ruby-debug-base19-0.11.26…

--with-ruby-include オプションで指定しているパスは、インストールしてあるRubyのパスに合わせて適切に修正が必要。

 

ruby-debug-ide19をインストール

K:\home\tmp7>gem install ruby-debug-ide19
Fetching: ruby-debug-ide19-0.4.12.gem (100%)
Successfully installed ruby-debug-ide19-0.4.12
1 gem installed
Installing ri documentation for ruby-debug-ide19-0.4.12…
Installing RDoc documentation for ruby-debug-ide19-0.4.12…

 

これで、Aptana Studio上で、Rubyコードをデバッグする準備は完了。

Aptana Studio 3上でのRubyデバッグ方法

基本的なデバッグ方法は、Eclipse上でのJavaのデバッグ手順とほぼ同じ。

 

Aptana Studioでrubyコードをエディターで開き、ブレークポイントを作成する。

 

ソリューションエクスプローラーから、ブレークポイントを作成しておいたrubyファイルを選択し、右クリック → Debug As → Ruby Application を選択する。

 

デバッグパースペクティブに変更するかを訪ねてくるので「Yes」を選択する。

 

見事にブレークポイントを設置したポイントでコードが停止した。

 

この状態から、Aptana Studio画面左上のDebugビューで、

などの操作が行える。

 

例えば、webrickライブラリのWEBrick::HTTPServer#initializeメソッドの中身をデバッグしたい場合は、次のようなコードを書いた状態で、WEBrick::HTTPServer.newメソッドの行にブレークポイントを設定し、デバッグ実行する。

 

WEBrick::HTTPServer.newメソッドの行でコードの実行が停止したら、F5キー(Step Into)を押す。

すると、C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rbソースファイルがエディタで開かれ、initializeメソッドの1行目で停止した状態になる。

 

この状態でF6(Step Over)を2回押すと、2行実行され、現在位置も2行進む。

 

ここで重要なのが、画面右上のVariablesビューだ。
現在の変数と値の一覧(NameとValueの一覧)がずらりと表示される。

 

任意のコードを実行したい場合には、メニューから、Windows → Show View → Display を選択して、Displayビューを表示する。

 

Displayビューで、任意のコードを実行してみる。
例えば、今実行しているクラスのメソッドに何があるのか気になる場合、Object#methodsと入力してEnterキーを押すと、結果の一覧が表示される。

runメソッド、serviceメソッド、do_OPTIONsメソッドなんかがあるんだな~ということがわかる。

 

Displayビューを使うにあたって、ハマりポイントと思われる点を紹介しておく。

Displayビューは、次に何か別のコードを実行したい場合には、まずはDisplayビューの内容を全て削除してからでないと、正しくコードを実行することができない。

例えば、先ほどmethodsメソッドを実行した状態で、いくらか改行して、@http_version.minorメソッドを呼び出して戻り値を調べてみようとする。

ところが戻り値は、nilになる。

 

次に、Displayビューの内容を全て削除してから、@http_version.minorメソッドだけを入力して、実行(Enterキー)すると、今度は”1″と表示される。

 

あとがき

以前、Aptana StudioでRubyをデバッグという記事で、Aptana Studio上で、Rubyをデバッグするための方法について紹介しました。

しかし、自分で読みなおしてみたところ、なんだか読みづらかったのと、デバッグ環境を構築するだけでなく、Aptana Studio上で実際にどうやってデバッグするのかといった点まで含めて紹介したかったということで、今回の記事を書きました。

 

Rubyは、書いてて楽しい言語ですが、デバッグ環境の構築にはひとクセあって、デバッグはpメソッドを埋め込むだけでなんとかやっているという人も多いのではないでしょうか。

そんな人に、この記事を読んでもらえたらいいなぁ・・と思っています。

“Rubyデバッグ環境最速構築&デバッグ方法解説” への1件のコメント

  1. […] io等の、IDE上でデバッガが動作すればよかったのですが、残念ながら、Rubyデバッグ環境最速構築&デバッグ方法解説で紹介した方法では、ブロックの中身をデバッグすることができませ […]

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=452