pry-debugger 更好。并且您需要在模块化样式下运行 sinatra 应用程序。
我在 github 创建了一个 repo,它解释了如何使用 pry 进行调试。
这里是回购:https://github.com/hlee/sinatra_debugger_example
pry-debugger 和 pry-nav 的区别
撬调试器
如果你查看 pry-debugger 的源代码,你会看到:
# pry-debugger.gemspec
# Dependencies
gem.required_ruby_version = '>= 1.9.2'
gem.add_runtime_dependency 'pry', '>= 0.9.10'
gem.add_runtime_dependency 'debugger', '~> 1.3'
gem.add_development_dependency 'pry-remote', '~> 0.1.6'
这意味着,pry-debugger 仅支持 MRI 1.9.2 和 1.9.3。由于它依赖于调试器,Pry-debugger 将支持更快的跟踪、断点等。
撬导航
另一方面,这里是 pry-nav 来源:
# pry-nav.gemspec
# Dependencies
gem.required_ruby_version = '>= 1.8.7'
gem.add_runtime_dependency 'pry', '~> 0.9.10'
gem.add_development_dependency 'pry-remote', '~> 0.1.6'
也就是说,pry-nav 是一种纯 ruby 方法,不依赖于调试器。将支持 1.8.7,不支持断点和调试器的一些其他功能。
断点
break SomeClass#run # Break at the start of `SomeClass#run`.
break Foo#bar if baz? # Break at `Foo#bar` only if `baz?`.
break app/models/user.rb:15 # Break at line 15 in user.rb.
break 14 # Break at line 14 in the current file.
break --condition 4 x > 2 # Change condition on breakpoint #4 to 'x > 2'.
break --condition 3 # Remove the condition on breakpoint #3.
break --delete 5 # Delete breakpoint #5.
break --disable-all # Disable all breakpoints.
break # List all breakpoints. (Same as `breakpoints`)
break --show 2 # Show details about breakpoint #2.
注意
pry-nav 和 pry-debugger 不能一起加载。