你们在ruby 1.9中用什么调试? rdebug似乎不兼容..那里有什么东西吗?
答案 0 :(得分:167)
ruby-debug19
不再维护。所有其他答案都已过时。
但还有另一种选择:
debugger
救援!
将其放入Gemfile
:
gem 'debugger', group: [:development, :test]
它只是工作。 - 它包含在rails Gemfile中,因为3.2.something要替换ruby-debug19
。它具有完全相同的功能并且得到了积极维护。
答案 1 :(得分:70)
RUBY 2.0+更新及以下
byebug是目前推荐的Ruby 2.0 +调试器
这个问题一直是documented here,而调试器的作者cldwalker指出调试器的范围是Ruby 1.9.2和1.9.3。
更新2
即使我找不到任何不再维护的地方,确实没有积极维护ruby-debug。
如果您需要帮助,可以使用new debugger gem开始使用Ryan Bates rails cast新的宝石。
在您的Gemfile中放置:
gem 'debugger', group: [:development, :test]
然后,您可以使用debugger
关键字在代码中的任意位置添加断点。
您仍然可以使用
linecache19和ruby-debug-base19 with:
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
这解决了我的问题。
OLD UPDATE
如果你遇到ruby 1.9.2和Rails 3调试put:
的问题gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
在您的Gemfile中并执行
bundle install
再次让你成为一个快乐的调试器。
答案 2 :(得分:50)
注意:这个答案是正确的,但现在已经过时了。请参阅以下正确答案。 TL; DR:现在使用'debugger'。
ruby-debug现在可用于Ruby 1.9.x.见http://www.github.com/mark-moseley
安装(在1.9 Ruby安装上使用gem):
gem install ruby-debug19
(也许前面有必要的'sudo')。
答案 3 :(得分:3)
你可以试试的一些事情
1)用ruby的普通调试器运行它-rdebug [1]慢一点
2)用unroller gem运行它[有点臭,慢慢的方式]
3)快速使用大量的印刷语句,可能更少内省
4)转到irb提示符并从那里运行一些代码。
你可以通过创建你自己的“drop to irb prompt”来列出代码,这些代码列出了自己的代码[使用调用者来发现你在哪里]然后转到正常的irb提示符。
5)在1.9 compat模式下jruby可能有调试器吗?
答案 4 :(得分:3)
如果在安装ruby-debug19后仍有问题,请尝试更新ruby-debug-base19。我有错误,无法在调试模式下运行WEBrick,直到我这样做。
gem update ruby-debug-base19
哦,谢谢Moseley先生的辛勤工作!
答案 5 :(得分:2)
请在此处查看我的回答: Ruby-debug not working - Stack Overflow
这是关于让Ruby调试使用以下设置
使用rvm,在我的项目工作目录中,我有一个.rvmrc说明:
rvm use ruby-1.9.3-p0@mygemset
我希望这有帮助!
- 弗雷迪
答案 6 :(得分:2)
我使用了以下内容,它对我很有用:
gem'debugger',group:[:development,:test]
ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux] rails 3.2.8
答案 7 :(得分:0)
Netbeans是RoR的一个很好的IDE。也是好的调试器。
答案 8 :(得分:0)
ruby 1.9.1-p243版本已经完成并且兼容ruby-debug-ide也正常工作。使用以下命令安装ruby-debug-ide:
gem install ruby-debug-ide
这将安装ruby-debug-base19和ruby-debug-ide gems。但在此之前,请确保按照RubyForge提供的开发工具包文档成功安装mingw。
答案 9 :(得分:0)
最新功能在ruby-debug-ide19 gem中可用。
答案 10 :(得分:0)
根据您的需要,有很多选择。
我使用pry-moves,因为我可以通过在调试模式下直接从该位置重新执行它们来“回顾”上一个命令内部发生的事情。
答案 11 :(得分:-1)
没有人使用: ruby -rdebug script.rb
然后你可以使用: b script.rb:##(其中##是有效ruby命令的行号)否则你可能会在rubygems或你需要的代码块中间。
然后你可以简单地将下一个断点设置为b:##