【发布时间】:2009-07-05 04:27:52
【问题描述】:
你们在 ruby 1.9 中使用什么进行调试? rdebug 似乎不兼容.. 那里有什么吗?
【问题讨论】:
-
忽略第一个答案;
ruby-debug19已过期。
你们在 ruby 1.9 中使用什么进行调试? rdebug 似乎不兼容.. 那里有什么吗?
【问题讨论】:
ruby-debug19 已过期。
ruby-debug19 不再维护。所有其他答案都已过时。
但还有一个选择:
debugger 来救援!
把这个放在你的Gemfile:
gem 'debugger', group: [:development, :test]
它可以正常工作。 - 从 3.2 开始,它已包含在 rails Gemfile 中。替换 ruby-debug19。它具有完全相同的功能并得到积极维护。
【讨论】:
group :development do ... end 或类似的地方),因为它已经包含一个组。
Ruby 2.0+ 及以下版本的更新
byebug 是目前推荐用于 Ruby 2.0+ 的调试器
这个问题一直是documented here,debugger 的作者 cldwalker 指出,debugger 的作用域是 Ruby 1.9.2 和 1.9.3。
更新 2
确实,即使我找不到不再维护的任何地方,ruby-debug 也没有得到积极维护。
如果您需要帮助以开始使用新的 gem,您可以使用 new debugger gem,您可以看到 Ryan Bates rails cast。
在您的 Gemfile 中放置:
gem 'debugger', group: [:development, :test]
然后您可以使用 debugger 关键字在代码中的任意位置添加断点。
您仍然可以使用
linecache19 和 ruby-debug-base19 与:
bash 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) 用 unroller gem 运行它[有点臭,太慢了]
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 - Stack Overflow
这是关于让 Ruby 调试与以下设置一起工作
使用 rvm,在我的项目工作目录中有一个 .rvmrc 声明:
rvm use ruby-1.9.3-p0@mygemset
我希望这会有所帮助!
-- 弗莱迪
【讨论】:
我使用了以下方法,它对我很有用:
gem 'debugger',组:[:development, :test]
ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-linux] 轨道 3.2.8
【讨论】:
Netbeans 是一个很好的 RoR IDE。调试器也不错。
【讨论】:
ruby 1.9.1-p243 版本已经发布,兼容的 ruby-debug-ide 也可以正常工作。使用以下命令安装 ruby-debug-ide:
gem install 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:##
【讨论】: