rubyコードを単一ステップでデバッグする方法
1804 ワード
C#書き慣れましたが、Sublimeを使ってRubyを書くときにIDEがdebugしていないので、本当に慣れていません.どうしよう!デバグはできません.条件を作ってもデバグが必要です.検索と実践を経て、以下のように記録した.
必要なgem
上記gemをインストール後、debugが必要なコードにbindingを追加する.pry
コードが実行されるとbindingに止まります.pryの次の行のコードの位置.pryはシングルステップデバッグをサポートしていませんが、なぜですか?!単一ステップのデバッグが必要な場合はpry-byebugというgemが必要です.pryドキュメントpry-byebugドキュメント
pry-byebugのいくつかの使い方
簡略化されたコマンドの使用
Enterキーを押すことで前回入力コマンドを実行する効果を得る必要がある場合は、プロファイルに以下の内容を入力.
ブレークポイントの使用方法:
pryを終了
必要なgem
gem install pry
gem install pry-byebug # ruby2.0.0, ruby pry-debugger gem
上記gemをインストール後、debugが必要なコードにbindingを追加する.pry
require 'pry'
binding.pry
quick_sort! [66,13,51,76,81,26,57,69,23], 0, 8
コードが実行されるとbindingに止まります.pryの次の行のコードの位置.pryはシングルステップデバッグをサポートしていませんが、なぜですか?!単一ステップのデバッグが必要な場合はpry-byebugというgemが必要です.pryドキュメントpry-byebugドキュメント
pry-byebugのいくつかの使い方
簡略化されたコマンドの使用
# .pryrc
vim ~/.pryrc
#
if defined?(PryByebug)
Pry.commands.alias_command 'c', 'continue'
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Pry.commands.alias_command 'f', 'finish'
end
Enterキーを押すことで前回入力コマンドを実行する効果を得る必要がある場合は、プロファイルに以下の内容を入力.
# Hit Enter to repeat last command
Pry::Commands.command /^$/, "repeat last command" do
_pry_.run_command Pry.history.to_a.last
end
ブレークポイントの使用方法:
break SomeClass#run # SomeClass run
break Foo#bar if baz? # baz? true , Foo bar
break app/models/user.rb:15 # user.rb 15
break 14 # 14
break --condition 4 x > 2 # x>2 ,
break --condition 3 #
break --delete 5 # 5
break --disable-all #
break #
break --show 2 #
break --delete-all #
break --enable 2 # ... ?!
pryを終了
exit!