ruby:如何在调试时进入任意函数

时间:2016-12-22 12:02:52

标签: ruby debugging pry byebug

让我说我在调试时停止了点:

def get_data
    byebug
 => @cache ||= calculate_data
end

并且@cache具有值,因此step函数calculate_data将不会被执行。但是我需要在这个确切的运行时点检查calculate_data内部的内容。

我可以执行calculate_data并在控制台输出中查看其结果,但是我可以从调试控制台执行函数,同时step into吗? (使用byebug或其他一些调试工具)。

目标 - 是在任意时间检查calculate_data逻辑,尤其是在get_data@cache填充时调用。

1 个答案:

答案 0 :(得分:1)

使用pry-moves,您可以从当前上下文中执行任意函数的单独调试:

def get_data
    binding.pry
 => @cache ||= calculate_data
end

键入debug calculate_data,以运行calculate_data并在其中的第一行停止。