C#寫習慣了,當使用Sublime寫Ruby時沒有IDE進行debug,實在是不習慣.
怎么辦?!
不能debug,創(chuàng)造條件也要debug!
經(jīng)過一番搜索加實踐,記錄如下.
需要的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是不支持單步調(diào)試的,為啥呢?!
如果需要單步調(diào)試就需要 pry-byebug這個gem.
pry文檔
pry-byebug文檔
pry-byebug的一些用法
使用簡化的命令
#在用戶根目錄下創(chuàng)建 .pryrc配置文件
vim ~/.pryrc
#輸入內(nèi)容
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鍵達到執(zhí)行上一次輸入的命令的效果,則在配置文件中輸入以下內(nèi)容.
# 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!