在Ruby 1.9中调试


90

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


10
忽略第一个答案;ruby-debug19现在已经过时了。
罗伯·霍华德

Answers:


50

注意:这个答案是正确的,但是现在已经过时了。请参阅以下正确答案。TL; DR:现在使用“调试器”。

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

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

gem install ruby-debug19

(在其前面可能有必要的“ sudo”)。


我做了一个粗略的尝试,但没有成功。需要更多时间来看看这一点。
Mark Moseley

ruby-debug-ide现在正在工作-您可以从cloud.github.com/downloads/mark-moseley/ruby-debug/…
Mark Moseley

这是个好消息!谢谢!
andi

不错:),但是您可以制作一个fatgem(包含1.8和1.9的ruby-debug版本),所以我们不必记得做rubydebbug19吗?:)
horseyguy 2010年

4
拒绝投票似乎是不公平的,因为时间的流逝现在已经使它成为错误的答案。SO需要某种方式来处理此类用例,以使新的正确答案成为第一个列出的答案,而不会惩罚那些对任何人都不再有用的旧答案的作者。
iconoclast 2012年

167

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

但是还有一种选择:

debugger 营救!

把它放在你的Gemfile

gem 'debugger', group: [:development, :test]

它只是工作。-自3.2.something以来,它已包含在rails Gemfile中ruby-debug19。它具有完全相同的功能,并且会得到积极维护。


1
效果很好。比手动安装ruby-debug好得多。谢谢。
manu_v 2012年

5
这确实是最重要的答案。
Matt Zukowski 2012年

2
是的,实际上这个答案一定是最重要的答案。
纳扎尔·侯赛因

以及它在Gemfile中的实际位置如何。
钻机2012年

没关系。将其放置在任意位置,而不是放在组块中(不在group :development do ... end其中),因为它已经包含一个组。
iblue 2012年

70

RUBY 2.0+及以下更新

byebug是当前推荐用于Ruby 2.0+的调试器

此处记录了此问题,调试器的作者cldwalker指出调试器的作用域为Ruby 1.9.2和1.9.3。

更新2

的确,即使我找不到任何不再维护的地方,也不会积极维护ruby-debug。

如果需要帮助来启动新的宝石,则可以使用新的调试器宝石,可以看到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

会让您再次成为快乐的调试器。


1
谢谢,对我来说,这是更合适的答案。但这也许是因为您将近一年后做出了答复,并且在这方面情况发生了根本性的变化。
标记

3

您可以尝试的一些方法

1)使用ruby的常规调试器-rdebug [1]运行它

2)用展开器宝石运行它[有点臭,很慢]

3)快速使用大量打印语句,可以减少自省

4)放到irb提示符下,然后从那里运行一些代码。

您可以通过创建自己的“放置到irb提示”来列出代码,并在其周围列出代码(使用调用方发现您在何处),然后放置到正常的irb提示中。

5)也许在1.9兼容模式下的jruby是否具有调试器?

[1] http://beaver.net/rdebug/index-0.html


3

如果在安装ruby-debug19之后仍然有问题,请尝试更新ruby-debug-base19。我遇到了错误,直到这样做,我才能在调试模式下运行WEBrick。

gem update ruby-debug-base19

哦,感谢莫斯利先生的辛勤工作!


2

在这里查看我的答案: Ruby-debug无法正常工作-代码日志

这是关于让Ruby调试与以下设置一起使用

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3(内部版本3.0.8.201201201658)
  • 使用rvm,在项目工作目录中有一个.rvmrc说明:

    rvm use ruby-1.9.3-p0@mygemset

我希望这有帮助!

-弗雷迪


2

我使用了以下功能,对我来说非常有用:

gem'debugger',分组:[:development,:test]

ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux] rails 3.2.8


0

Netbeans是RoR的良好IDE。也是很好的调试器。


1
如果我错了,请纠正我,但是我不相信调试器还可以用于Ruby 1.9.1(C实现)。至少,我没有成功地使其工作。
JP理查森,2009年

0

ruby 1.9.1-p243版本已经发布,可兼容的ruby-debug-ide也可以正常工作。使用以下命令安装ruby-debug-ide:

gem安装ruby-debug-ide

这将安装ruby-debug-base19和ruby-debug-ide gem。但是在此之前,请确保遵循RubyForge提供的Development kit文档成功安装mingw 。


0

ruby-debug-ide19 gem提供了最新功能。



-1

没有人使用:ruby -rdebug script.rb

那么您可以使用:b script.rb:##(其中##是有效的ruby命令的行号),否则您可能会陷入rubygems的中间或所需的代码块之一。

然后,您可以简单地将下一个断点设置为b:##

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.