subtitle

RaiseTechの各種コースをはじめとしたイロイロな学習の記録

Pryでデバッグしてみる

pryでデバッグできるようなので、早速試してみる。

ブレークポイントの設定

まず、lesson3.rb というRubyのファイルを用意し、コードを書く。

「require 'pry'」の記述と、ブレークを貼りたい部分に、「binding.pry」と書く。

require 'pry'  # おまじない

puts "ネコを数えるメソッド"
def CountCats(array_num)
  num = 0
  array_num.each{ |i|
    num = num + i
    binding.pry     # ブレークポイント
  }
  puts "#{num} 匹"
end

array_cats_num = (1..10).to_a
puts "引数:配列にはネコがいっぱい入っている: #{array_cats_num}"
CountCats(array_cats_num)

array_cats_num2 = [1000, 2000, 3000, 4000, 5000]
puts "引数:もっといっぱい配列にネコを入れる: #{array_cats_num2}"
CountCats(array_cats_num2)

ターミナルで、「ruby lesson3.rb」と書き、lesson3.rb を実行すると、ブレークポイントを貼ったところで止まる。



自動的にpryが立ち上がるので、値を見たい変数を入力してEnter。

numの値に1が入っていることが分かる。



eachなどのループ処理から抜けたい場合は、「exit」で1周分を抜けられる。

2回目のeachのループでnum=3になっていることが分かる。



pryでのデバッグを終了したい時は、「!!!」で終了できる。




ステップ実行

pryではステップ実行もできるようなので、やってみる。



Can't escape from eval with next というエラーになる。

調べてみると、pry-navをインストールすると、使えるようになるらしいので、やってみる。

gem install pry-nav を実行。



pry-nav だけインストールしてもダメだったので、pry-byebugもインストール。
(pry-byebugはRubyのデバッガらしいので、そりゃ、これがインストールされてなきゃダメだw)

gem install pry-byebug を実行。



これで、ステップ実行ができるようになった。(歓喜!)





nextは次の行へ、stepは関数の中まで入る。