你们在 Ruby 1.9 中用什么来进行调试?rdebug 似乎不兼容......有没有其他工具可供选择?
ruby-debug19
不再得到维护,所有其他答案都已过时。
但是这里有一个替代方案:
debugger
来帮忙!
将以下内容添加到你的Gemfile
中:
gem 'debugger', group: [:development, :test]
它只是起作用。 - 自3.2版本以来,它已经被包含在Rails Gemfile中,以替换ruby-debug19
。 它具有完全相同的功能并且正在积极维护。
针对 Ruby 2.0+ 及以上版本的更新
byebug 是目前推荐用于 Ruby 2.0+ 的调试器。
这个问题已经在这里得到了记录,debugger 的作者 cldwalker 指出 debugger 将仅支持 Ruby 1.9.2 和 1.9.3。
更新 2
虽然我没有找到 ruby-debug 不再维护的信息,但确实它已经不再主动维护了。
如果你需要帮助并使用新的 debugger gem,可以看看Ryan Bates 的 Rails Casts。
在你的 Gemfile 中添加:
gem 'debugger', group: [:development, :test]
您可以使用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
这对我解决了问题。
旧版更新
如果你在使用ruby 1.9.2和Rails 3调试时遇到问题,请尝试将以下内容添加:
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
在你的 Gemfile 中执行以下操作。bundle install
会让你重新成为快乐的调试者。
注意:这个答案曾经是正确的,但现在已经过时。请看下面的正确答案。简而言之:现在使用“debugger”。
ruby-debug 现在可以在 Ruby 1.9.x 中使用了。请参见 http://www.github.com/mark-moseley
安装(在 1.9 版本的 Ruby 上使用 gem):
gem install ruby-debug19
(也许需要在其前面加上必要的 'sudo' )。
以下是您可以尝试的一些方法:
1)使用Ruby的常规调试器-rdebug [1]运行,速度较慢
2)使用unroller gem运行[有点糟糕,速度很慢]
3)使用大量的打印语句,速度快,但可能会减少内省能力
4)跳转到irb提示符并从那里运行一些代码。
您可以通过创建自己的“跳转到irb提示符”来列出代码,该提示符会在其周围列出代码[使用caller发现您所在的位置],然后跳转到正常的irb提示符。
5)也许jruby在1.9兼容模式下有一个调试器?
如果您在安装ruby-debug19后仍然遇到问题,请尝试更新ruby-debug-base19。在我这里,只有在更新了ruby-debug-base19之后,我才能在调试模式下运行WEBrick。
gem update ruby-debug-base19
哦,感谢Moseley先生辛勤的工作!
我使用以下代码,它对我很有效:
gem 'debugger',group: [:development, :test]
ruby 1.9.3p194(2012年4月20日修订版35410)[x86_64-linux] rails 3.2.8
请看我在这里的答案:Ruby-debug not working - Stack Overflow
这是关于如何让 Ruby 调试与以下设置一起工作的问题。
Using rvm, in my project working directory I have a .rvmrc stating:
rvm use ruby-1.9.3-p0@mygemset
Netbeans是RoR的一个很好的IDE,也具备良好的调试器。
最新功能可在ruby-debug-ide19 gem中使用。
最新的ruby 1.9.1-p243版本已经发布,兼容的ruby-debug-ide也可以正常工作。使用以下命令安装ruby-debug-ide:
gem install ruby-debug-ide
这将安装ruby-debug-base19和ruby-debug-ide宝石。但在此之前,请确保您按照RubyForge提供的开发工具文档成功安装了mingw。