【问题标题】:Trace the code in Ruby? [closed]在 Ruby 中跟踪代码? [关闭]
【发布时间】:2010-09-14 06:51:16
【问题描述】:

有没有什么好方法可以运行脚本并查看所有步骤:

  • 执行了哪些代码
  • 代码在哪个文件中
  • 返回什么
  • 错误消息

这将是了解开源项目如何运作的好方法。

Ruby 没有这样的解决方案吗?

例如。

require "httparty"
HTTParty.get "http://www.google.se"

然后它会运行代码并向我显示它正在执行的所有代码,其中的文件和行、返回的对象、错误消息等。

【问题讨论】:

    标签: ruby open-source debugging trace


    【解决方案1】:

    Tracer 可能会为你做这件事http://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/Tracer

    如果您只想查看引发的异常,请运行 ruby​​ -d(或使用 ruby​​-debug 和“Catch”异常)

    【讨论】:

    • 我使用的是 Ruby 1.9.2。为什么我运行“ruby --help”时没有-rtracer 开关。当我运行“ruby -rtracer my_ruby_file.rb”时,它像往常一样被打印出来,我看不到任何跟踪功能。
    • @never_had_a_name,它不在 --help 中,因为 is 记录的是 -rlibrarytracer 恰好是可用的库之一。记录每个可用的库将是一项无休止的任务。 (每个内置库都可以通过这种方式加载,但这种方式与命令行使用不同)。
    【解决方案2】:

    Kernel#set_trace_func 主要涵盖了您的需求:

    proc 最多需要六个参数:一个 事件名称、文件名、行号、 对象 ID、绑定和名称 一类的。 proc 在任何时候被调用 发生了一个事件。

    不过,我不确定您所说的“错误消息”是什么意思。如果您引用异常,如果您不在代码中处理它们,您的代码将终止并打印异常。

    【讨论】:

      【解决方案3】:

      使用调试器? ruby 自带一个,或者使用 ruby​​-debug

      【讨论】:

      • 像 ruby​​-debug 这样的调试器能满足我的需要吗?请阅读我更新的帖子。
      【解决方案4】:

      您可以引发异常,捕获它,然后使用异常对象的回溯方法。

      【讨论】:

      • 我不是为库编写代码的人。阅读我更新的帖子
      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2018-09-30
      • 2011-10-16
      • 2021-10-06
      • 2023-01-04
      • 1970-01-01
      相关资源
      最近更新 更多