C#写习惯了,当使用Sublime写Ruby时没有IDE进行debug,实在是不习惯.
怎么办?!
不能debug,创造条件也要debug!
经过一番搜索加实践,记录如下.
需要的gem
1 2
| gem install pry gem install pry-byebug
|
安装了上述gem后,在需要debug的代码中添加 binding.pry
1 2 3 4
| 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的一些用法
使用简化的命令
1 2 3 4 5 6 7 8 9
| #在用户根目录下创建 .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键达到执行上一次输入的命令的效果,则在配置文件中输入以下内容.
1 2 3 4
| # Hit Enter to repeat last command Pry::Commands.command /^$/, "repeat last command" do _pry_.run_command Pry.history.to_a.last end
|
断点用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| break SomeClass break Foo break app/models/user.rb:15 break 14
break --condition 4 x > 2 break --condition 3
break --delete 5 break --disable-all
break break --show 2
break --delete-all break --enable 2
|
退出pry