Ruby - pry-byebug デバッガ - 実行してみる
- 1. ソースへの書き込み
- 2. コマンド
1. ソースへの書き込み
デバッガを起動するにはソースへの書き込みが必要になるらしい・・・。
えぇぇ?
それって、「Visual Studio」の「VC」で「DebugBreak();」を使うようなもん?
まぁスレッド実行のような、実行時にポイントの箇所で止めることができないものには便利な機能ですが、いちいちソースに書いたりコメントアウトするのはなんて原始的な・・・。
いきなり起動するのはどうなのかしらん。
とりあえず
#!/usr/bin/env ruby
require('open-uri')
require('nokogiri')
charset = nil
html = open(ARGV[0]) do | f |
charset = f.charset # 文字種別を取得
f.read # htmlを読み込んで変数htmlに渡す
end
doc = Nokogiri::HTML.parse(html, nil, charset) # htmlをパース(解析)してオブジェクトを生成
puts("doc.title") # タイトルを表示
てなソースを実行すると
> ./ソースファイル名.rb http://freebsd.sing.ne.jp/lang/ruby/04/02.html
ruby - a?|a?§a??a?1a? ̄a?¬a??a??a?3a?° - open-uri
てな感じなので、実際 puts で出力されているのかを確認したくて、ソースを修正
#!/usr/bin/env ruby
require('pry') ← この行を追加
require('open-uri')
require('nokogiri')
binding.pry ← この行を追加
charset = nil
html = open(ARGV[0]) do | f |
charset = f.charset # 文字種別を取得
f.read # htmlを読み込んで変数htmlに渡す
end
doc = Nokogiri::HTML.parse(html, nil, charset) # htmlをパース(解析)してオブジェクトを生成
puts("doc.title") # タイトルを表示
3、7行を追加しておるわけですが、これで実行すると 7行でデバッガが起動します。
2. コマンド
主なコマンドは
コマンド | 内容 |
print 変数名 | 変数の内容を表示 (と思ったら単に print メソッドを実行している?) |
next | 次の行を実行 |
step | 次の行を実行 メソッドの場合はメソッド内にステップイン |
continue | pry を終了して実行を継続 |
finish | 現在のフレームが終わるまで実行 |
exit | 最後まで実行して終了 |
quit |
!!! | ループ内だと exit 等でぬけないときに全部終了させるにはこれを使用します |
省略形が効かないらしいのがちょっとつらいところ。
|
|