C#写习惯了,当使用Sublime写Ruby时没有IDE进行debug,实在是不习惯.
怎么办?!
不能debug,创造条件也要debug!
经过一番搜索加实践,记录如下.
需要的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!
网友评论