About-byebug-for-debug-with-pry

byebug 導入

ruby2.0環境下では、pry-nav ならびに pry-debugger のデバッグ機能に不具合があり、また例外補足のためのツール pry-exception_explorer にも不具合があるため、デバッグ用のツールとして同様の機能を持つ byebug および pry-rescue への切り替えを行った。

また今回のタイミングで、コールスタック(バックトレース)を参照するためのツールである pry-stack_explorer の導入も行った。

byebug は pry と同じインタフェイスを持っているとのことで使用法は pry と同じである。

まず、以下の gem は Gemfile から削除した。

1
2
gem 'pry-debugger' # あるいは pry-nav
gem 'pry-exception_explorer'

そして次の gem を導入する。

1
2
3
4
5
6
7
8
# pry for debug
group :development, :test do
  gem 'pry-rails'               # pry base
  gem 'pry-byebug'              # debugger for pry
  gem 'pry-stack_explorer'      # call stack viewer
  gem 'pry-rescue'              # exception event handler
  gem 'hirb-unicode'            # hirb
end

■pry-rescue使用法

デバッグ対象をブロックとして括り、その内部で何らかの例外が飛ばされた場合、その位置で binding.pry が起動される。

1
2
3
4
5
Pry.rescue do
  (略)
  raise XxxException
  (略)
end

■pry-stack_explorer使用法

pry-stack_explorer を導入することで、binding.pry を利用したデバッグ中に、show-stack コマンドを用いてコールスタックを参照することが可能である。 以下のコマンドを使ってコールスタックの内容を参照可能である。callerより断然便利。

スタックを上がる

up

下がる

down

フレームを指定して移動

frame N


参考サイト:

https://github.com/deivid-rodriguez/byebug
https://github.com/pry/pry-stack_explorer
http://qiita.com/joker1007/items/f132db1b4a5e3f9278e9

pry 関連のサブツールについて
http://blog.uu59.org/2012-10-13-pry.html

ruby2.0環境下における pry-debugger の不具合について
https://bugs.ruby-lang.org/issues/7214