你们在 ruby 1.9 中使用什么进行调试?rdebug 似乎不兼容..那里有什么吗?
12 回答
ruby-debug19
不再维护。所有其他答案都已过时。
但是还有一个选择:
debugger
救援!
把它放在你的Gemfile
:
gem 'debugger', group: [:development, :test]
它只是工作。- 自 3.2 以来,它已包含在 rails Gemfile 中。要替换的东西ruby-debug19
。它具有完全相同的功能并得到积极维护。
Ruby 2.0+ 及以下版本的更新
byebug是目前推荐用于 Ruby 2.0+ 的调试器
此问题已在此处记录,调试器的作者 cldwalker 指出,调试器将适用于 Ruby 1.9.2 和 1.9.3。
更新 2
确实,即使我找不到不再维护的任何地方,ruby-debug 也没有得到积极维护。
如果您需要帮助以开始使用新的 gem,您可以使用新的调试器 gem ,您可以看到Ryan Bates rails cast。
在您的 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
会让你再次成为一个快乐的调试器。
注意:这个答案是正确的,但现在已经过时了。请参阅下面的正确答案。TL;DR:现在使用“调试器”。
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)用展开器宝石运行它[有点臭,很慢]
3)快速使用大量打印语句,减少自省
4) 进入 irb 提示符并从那里运行一些代码。
您可以通过创建自己的“drop to irb prompt”来列出代码,该“drop to irb prompt”列出了自己周围的代码[使用调用者来发现你在哪里],然后下降到正常的 irb 提示符。
5) 也许 1.9 兼容模式下的 jruby 有调试器?
如果安装 ruby-debug19 后仍然有问题,请尝试更新 ruby-debug-base19。在我这样做之前,我遇到了错误并且无法在调试模式下运行 WEBrick。
gem update ruby-debug-base19
哦,感谢 Moseley 先生的辛勤工作!
在这里查看我的答案: Ruby-debug not working - 代码日志
这是关于让 Ruby 调试与以下设置一起工作
- Mac OS X 狮子 10.7.2
- Aptana Studio 3(内部版本 3.0.8.201201201658)
使用 rvm,在我的项目工作目录中,我有一个 .rvmrc 说明:
rvm use ruby-1.9.3-p0@mygemset
我希望这有帮助!
——弗莱迪
我使用了以下内容,它对我很有用:
宝石“调试器”,组:[:开发,:测试]
ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-linux] rails 3.2.8
Netbeans 是一个很好的 RoR IDE。调试器也不错。
ruby 1.9.1-p243 版本已经发布,可兼容的 ruby-debug-ide 也可以正常工作。使用以下命令安装 ruby-debug-ide:
宝石安装 ruby-debug-ide
这将安装 ruby-debug-base19 和 ruby-debug-ide gem。但在此之前,请确保按照RubyForge提供的开发工具包文档成功安装 mingw 。
ruby-debug-ide19 gem 中提供了最新功能。
有很多选择,看你的需求。
我使用pry-moves是因为我可以“回顾”前一个命令内部发生的事情,方法是直接从该位置以调试模式重新执行它们。
没有人使用: ruby -rdebug script.rb
那么您可以使用: b script.rb:##(其中 ## 是有效 ruby 命令的行号)否则您可能会处于 rubygems 或您所需的代码块之一的中间。
然后你可以简单地将下一个断点设置为 b:##