【问题标题】:How to use the debugger with Ruby 2.0?如何在 Ruby 2.0 中使用调试器?
【发布时间】:2013-03-04 11:10:10
【问题描述】:

我知道调试器 gem 不是并且永远不会与每个“officially support ruby 2.X”的 ruby​​ 2.0 兼容。

在 Ruby 2.0 的更新日志中是:

调试支持

DTrace 支持,可在

中启用运行时诊断

生产 TracePoint,这是一个改进的跟踪 API

Ruby 2.0 是否有现成的调试工具?谁能给我解释一下?

【问题讨论】:

    标签: ruby debugging ruby-2.0


    【解决方案1】:

    可以使用调试器 gem,但仍然存在问题。

    安装为 Ruby 2.0 调试而编写的 byebug

    对于断点,请在代码中使用byebug 命令而不是debugger

    【讨论】:

    • 实际上似乎不适用于 Ruby 2.0.0 (stackoverflow.com/q/17044127/388916)
    • 它有效,我每天都使用 byebug:Rails 3.2.13、rvm 1.20.10、ruby 2.0.0p195 和 gem byebug 1.4.0。
    • @Codemonkey,byebug 不能(也不会)在 Ruby 1.9.x 上工作,但它必须在 Ruby 2.0.0 上工作,因为这是它的唯一目的。我刚刚回答了你的问题,如果 byebug 仍然不适合你,请告诉我。
    【解决方案2】:

    调试器 gem 的 1.4.0 版现在可以正常安装。还有一些问题,但应该很快就会解决。

    调试器 gem 不能很好地与 Ruby 2 配合使用。相反,安装与 Ruby 2 完全兼容的 Byebug gem。

    【讨论】:

    • 关于这些问题的任何细节?我在“下一步”的行为类似于“步骤”时遇到问题,这使得它无法使用。
    • 嗨 @StevenSoroka,我制作这个 gem 是为了克服 Ruby 2.0 的调试器问题:byebug。如果您尝试并有任何问题,请告诉我。
    • 谢谢@devid!这一直在杀死我。
    • 欢迎您@PaulAlexander。它也杀了我……这就是我成功的原因!
    • @rubii 我确实尝试过提供帮助,但我的帮助被拒绝了(请参阅 github.com/cldwalker/debugger/issues/47#issuecomment-14965459)。就目前的情况来看,我很高兴使用 byebug,尽管它不受欢迎。
    【解决方案3】:

    使用pry:

    gem install pry  
    gem install pry-debugger
    

    见“Debugging Ruby With Pry”。

    【讨论】:

    • 如果我想打印状态或检查事物并且可以知道在哪里打pry点,Pry很棒。它不允许我提前执行 step 或 next 或设置断点,因此当调试器可用时,它实际上并不能充分替代调试器。
    【解决方案4】:

    debug.rb(又名 binding.break)

    考虑使用名为debug.rb 的新Ruby 调试工具。

    它支持语法高亮和更多开箱即用的功能。

    另外,值得一提的是,它是由 Ruby 核心团队开发的。

    只需将 binding.break 放在代码库中的任何位置即可。

    这是一个例子:

    另外,它是default Rails debugger starting from version 7

    注意事项:

    • 不要忘记require 'debug'
    • q # quit command

    来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多