让我说我在调试时停止了点:
def get_data
byebug
=> @cache ||= calculate_data
end
并且@cache
具有值,因此step
函数calculate_data
将不会被执行。但是我需要在这个确切的运行时点检查calculate_data
内部的内容。
我可以执行calculate_data
并在控制台输出中查看其结果,但是我可以从调试控制台执行函数,同时step into
吗?
(使用byebug或其他一些调试工具)。
目标 - 是在任意时间检查calculate_data
逻辑,尤其是在get_data
被@cache
填充时调用。
答案 0 :(得分:1)
使用pry-moves,您可以从当前上下文中执行任意函数的单独调试:
def get_data
binding.pry
=> @cache ||= calculate_data
end
键入debug calculate_data
,以运行calculate_data并在其中的第一行停止。