如何使用 pry 作為 Ruby debugger 進行除錯

很奇怪,ruby-debug 或是 ruby-debug19 常常有版本問題,甚至還有 fork 版本 debugger。都不知道哪個沒問題。

最近發現其實 pry gem 就可以作為 debugger 之用,本來還以為只是漂亮的 irb 取代品,沒想到功能這麼強大。作為 debugger 使用的方法很簡單,只要在程式裡加上:

binding.pry

這樣就會設下中斷點。例如在 rails console 或 rails server 中,就會停下來讓你可以進行檢查和除錯。

可是如果你有用 Rails 伺服器,例如 pow 或 passenger 的話,因為不在同一個 process,所以必須加裝 pry-remote gem。它利用 DRb 技巧讓另一個 process 可以亂入進行除錯,用法改成:

binging.remote_pry

接著在 command line 輸入 pry-remote 就可以進行除錯了。非常簡單好用。

其他 pry plugins 也可以裝一下,包括:1. pry-stack_explorer 輸入 show-stack 的話可以看到 call stack 2. pry-debugger 可以加上 step, next, finish 和 continue 的控制

Leave a Reply