カクカクしかじか

技術的なアレコレ

Railsのbinding.pryじゃない!Rubyのデバッガーを使う方法

Rubyのデバッガーを使う

-r debug をつけてRubyのファイルを実行するとデバッグモードでファイルを起動することが可能です!!(知らなかった...)

$ ruby -r debug 実行ファイル

デバッグのやり方

Railsのbinding.pry同様にnext(次へ)やstep(メソッド呼び出しがある場合はその中へ)も可能です。 試しに以下のファイルをデバッグしてみます。

実際にデバッグしてみる

hoge.rb

str = gets
p str

オプション付きでコマンドを打つとデバッガーが起動しました。
この場合 (rdb:1) の部分が目印で、その上に表示されている式がデバッグモードで止まって箇所になります。

$ ruby -r debug hoge.rb
/Users/shigeyukifukuda/.rbenv/versions/2.5.1/lib/ruby/2.5.0/x86_64-darwin17/continuation.bundle: warning: callcc is obsolete; use Fiber instead
Debug.rb
Emacs support available.

hoge.rb:1:str = gets
(rdb:1)

nextしてみると!

$ ruby -r debug hoge.rb
/Users/shigeyukifukuda/.rbenv/versions/2.5.1/lib/ruby/2.5.0/x86_64-darwin17/continuation.bundle: warning: callcc is obsolete; use Fiber instead
Debug.rb
Emacs support available.

hoge.rb:1:str = gets
(rdb:1) next
"hoge"
hoge.rb:2:p str
(rdb:1) next
"\"hoge\"\n"

binding.pry同様に一行ずつデバッグ出来ます。