【问题标题】:Debugging in ruby 1.9在 ruby​​ 1.9 中调试
【发布时间】:2009-07-05 04:27:52
【问题描述】:

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

【问题讨论】:

  • 忽略第一个答案; ruby-debug19 已过期。

标签: ruby debugging rdebug


【解决方案1】:

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

但还有一个选择:

debugger 来救援!

把这个放在你的Gemfile:

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

它可以正常工作。 - 从 3.2 开始,它已包含在 rails Gemfile 中。替换 ruby-debug19。它具有完全相同的功能并得到积极维护。

【讨论】:

  • 效果很好。比手动安装 ruby​​-debug 要好得多。谢谢。
  • 这确实需要作为最佳答案向上移动。
  • 是的,确实这个答案一定是最佳答案。
  • 那么它在 Gemfile 中的实际位置如何。
  • 没关系。把它放在你喜欢的任何地方,只是不要放在组块内(不要放在group :development do ... end 或类似的地方),因为它已经包含一个组。
【解决方案2】:

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

会让你再次成为一个快乐的调试器。

【讨论】:

  • 谢谢,对我来说这是更合适的答案。但也许这是因为您在将近一年后才回复,而这方面的情况发生了翻天覆地的变化。
【解决方案3】:

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

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

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

gem install ruby-debug19

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

【讨论】:

  • 我粗略地尝试了一下,但没有成功。需要更多时间来看看这个。
  • ruby-debug-ide 正在运行 - 你可以在 cloud.github.com/downloads/mark-moseley/ruby-debug/… 获得新的 gem
  • 这是个好消息!谢谢!
  • 干得好 :) 但是你能制作一个 fatgem(包含 1.8 和 1.9 ruby​​-debug 版本),所以我们不必记住做 ruby​​debbug19 吗? :)
  • 仅仅因为时间的流逝使它现在成为错误的答案而对此投反对票似乎不公平。 SO 需要某种方式来处理此类用例,以允许 正确答案成为第一个列出的答案,而不会惩罚那些不再对任何人有用的旧答案的作者。
【解决方案4】:

你可以尝试一些事情

1) 使用 ruby​​ 的正常调试器 -rdebug [1] 运行它,有点慢

2) 用 unroller gem 运行它[有点臭,太慢了]

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

4) 进入 irb 提示符并从那里运行一些代码。

您可以通过创建自己的“drop to irb prompt”来列出代码,该“drop to irb prompt”列出了自己周围的代码[使用调用者来发现你在哪里],然后下降到正常的 irb 提示符。

5) 1.9兼容模式下的jruby可能有调试器?

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

【讨论】:

    【解决方案5】:

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

    gem update ruby-debug-base19
    

    哦,感谢 Moseley 先生的辛勤工作!

    【讨论】:

      【解决方案6】:

      在这里查看我的答案: Ruby-debug not working - Stack Overflow

      这是关于让 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
        

      我希望这会有所帮助!

      -- 弗莱迪

      【讨论】:

        【解决方案7】:

        我使用了以下方法,它对我很有用:

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

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

        【讨论】:

          【解决方案8】:

          Netbeans 是一个很好的 RoR IDE。调试器也不错。

          【讨论】:

          • 如果我错了,请纠正我,但我不相信调试器适用于 Ruby 1.9.1(C 实现)。至少,我还没有成功地让它发挥作用。
          【解决方案9】:

          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。

          【讨论】:

            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

              有很多选择,取决于您的需要。

              我使用pry-moves 是因为我可以“回顾”前一个命令内部发生的事情,方法是直接在调试模式下重新执行它们。

              【讨论】:

                【解决方案12】:

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

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-04-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-02-03
                  相关资源
                  最近更新 更多