#pry-byebugとは
pryでデバッグするためのプラグイン
pry-debuggerの後継らしい
GitHub https://github.com/deivid-rodriguez/pry-byebug
#pryとは
irbのように対話的にrubyを実行するためのツール
irbに比べてドキュメントが見れたりシンタックスハイライトが効いたりする
#pry-byebugをインストールする
gem install pry-byebug
#pry-byebugを使う
デバッグしたいコードにrequire 'pry'
を追加する
あとは、ブレークポイントをうちたい場所にbinding.pry
を書いて実行すればその箇所で処理が止まってくれてpryが起動します
sample.rb
#!/usr/bin/env ruby
require "thor"
require "pry"
x = 10
y = 20
z = 30
binding.pry # ここ
area = (x*y + y*z + z*x) * 2
volume = x * y * z
print "area: ", area, "\n"
print "volume: ", volume, "\n"
これを実行すればブレイクポイントを打ったとこで処理が止まる
6: x = 10
7: y = 20
8: z = 30
9:
10: binding.pry
=> 11: area = (xy + yz + zx) 2
12: volume = x * y * z
13: print "area: ", area, "\n"
14: print "volume: ", volume, "\n"
#####変数の値を確認する
変数名を打てば変数には入っている値を確認できます
[1] pry(main)> area
=> 2200
#####pry-byebugで使えるコマンド
- next
- 次の行を実行
- step
- 次の行かメソッド内に入る
- continue
- プログラムの実行をcontinueしてpryを終了
- finish
- 現在のフレームが終わるまで実行
#毎回nextなどを打つのが面倒くさいときは
~/.pryrc
を作成しておくと楽です
.pryrc
if defined?(PryByebug)
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Pry.commands.alias_command 'f', 'finish'
Pry.commands.alias_command 'c', 'continue'
end