Dan*_*hka 6 ruby debugging pry byebug
假设我在调试时停止了点:
def get_data
byebug
=> @cache ||= calculate_data
end
Run Code Online (Sandbox Code Playgroud)
并且@cache有价值,所以step功能calculate_data不会被执行.但我需要检查calculate_data在这个确切的运行时点内部发生了什么.
我只能执行calculate_data并看到它在控制台输出结果,但我可以执行功能,从调试控制台,并在同一时间step into吗?(使用byebug或其他一些调试工具).
目标 - calculate_data在任意时间检查逻辑,特别是在填充时get_data调用逻辑@cache.
使用pry-moves,您可以从当前上下文中执行任意函数的单独调试:
def get_data
binding.pry
=> @cache ||= calculate_data
end
Run Code Online (Sandbox Code Playgroud)
键入debug calculate_data以运行calculate_data并停止在其中的第一行。