在ruby 1.9中调试

clo*_*ead 90 ruby debugging rdebug

你们在ruby 1.9中用什么调试?rdebug似乎不兼容..那里有什么东西吗?

ibl*_*lue 167

ruby-debug19不再维护了.所有其他答案都已过时.

但还有另一种选择:

debugger 救援!

把它放在你的Gemfile:

gem 'debugger', group: [:development, :test]
Run Code Online (Sandbox Code Playgroud)

它只是有效.- 从3.2.something替换它包含在rails Gemfile中ruby-debug19.它具有完全相同的功能,并得到积极维护.

  • 这真的需要提升为最佳答案. (5认同)
  • 是的,这个答案肯定是最重要的答案. (2认同)

tom*_*sop 70

更新20+ RUBY和以下

byebug是目前推荐的Ruby 2.0+调试器

此问题已在此处记录,调试器的作者cldwalker指出,调试器的范围将限定为Ruby 1.9.2和1.9.3.

更新2

确实,即使我找不到任何不再维护的地方,也不会主动维护ruby-debug.

你可以使用新的调试器gem,如果你需要一个帮助来开始新的宝石,你可以看到Ryan Bates导演.

在你的Gemfile中放:

gem 'debugger', group: [:development, :test]
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用debugger关键字在代码中的任何位置添加断点.

你仍然可以使用

linecache19和ruby-debug-base19:

bash <<(curl -L https://raw.github.com/gist/1333785)

老答复

只需用rvm,ruby 1.9.1-p378添加一下.真实的故事是,即使ruby-debug是1.9.x准备好了,linecache-0.43也不行.解决方案是安装:

gem install ruby-debug19
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.

旧的更新

如果您遇到ruby 1.9.2和Rails 3调试问题:

gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
Run Code Online (Sandbox Code Playgroud)

在你的Gemfile中做一个

bundle install
Run Code Online (Sandbox Code Playgroud)

会让你再次成为一个快乐的调试器.


小智 50

注意:这个答案是正确的,但现在已经过时了.请参阅以下正确答案.TL; DR:现在使用'debugger'.

ruby-debug现在可以在Ruby 1.9.x中使用.见http://www.github.com/mark-moseley

要安装(在1.9 Ruby安装上使用gem):

gem install ruby-debug19
Run Code Online (Sandbox Code Playgroud)

(也许前面有必要的'sudo').

  • iblue(下面)发布的答案是正确的. (5认同)
  • 仅仅因为时间的流逝使得它现在成为错误的答案,这似乎是不公平的.SO需要一些处理此类用例的方法,以允许*new*正确答案成为第一个列出的,而不会惩罚那些对任何人都没用的旧答案的作者. (4认同)