rails 調試

1. ruby-debug, ruby-debug19

沒人維護,bug多。Ruby 1.9.3後不推薦使用html

2. debugger

ruby 1.9.3後的選擇,功能強大,缺點是沒有語法高亮。git

項目中引用debugger方法

修改Gemfilegithub

1
2
3
group :development, :test do  gem 'debugger' end 

在須要設置斷點的地方:ruby

1
require 'debugger'; debugger 

查看源文件方法

1
2
3
list #日後翻看代碼 list- [n] #往前翻看代碼 list= #查看當前運行處代碼 

list能夠縮寫爲lapp

查看方法棧(stack frames)

1
2
3
backtrace/where # 查看 frame [n] # 跳到指定stack frames up [n] (縮寫u)  down [n] # 在stack frames層裏來回切換 

執行控制

1
2
3
4
next # 執行下一行,遇到方法調用不進入。 step # 執行一步,遇到方法調用進入。 continue/c # 執行到下一個斷點。 finish [n] # 執行到指定的frame才返回。注意編號是從下往上數。 

其它經常使用命令

1
2
help info 

3. pry

替代irb,我最喜歡的是語法高亮。ide

1
2
3
4
5
6
7
8
help cd .. whereami self ls show-doc show-method edit-method 

pry-nav

pry只是替代erb,並不能調試rails,加上rails後便可pry-nav。 增長3種基本調試指令。ui

1
2
3
step next continue 

pry-stack_explorer

Pry的插件,用於查看方法棧spa

1
2
3
4
5
6
7
(pry) main: 0> show-stack Showing all accessible frames in stack (5 in total): -- => #0 [method] gamma  #1 [method] beta  #2 [method] alpha 

使用pry調試rails項目

修改Gemfile插件

1
2
3
4
5
group :development, :test do  gem 'pry'  gem 'pry-nav'  gem 'pry-stack_explorer' # 若是不查看方法棧,能夠省略 end 

在須要設置斷點的地方:debug

1
binding.pry 

4. 參考

https://github.com/cldwalker/debugger

https://github.com/pry/pry

https://github.com/pry/pry-stack_explorer

http://guides.rubyonrails.org/debugging_rails_applications.html

相關文章
相關標籤/搜索