ruby: 如何在调试时单步执行任意函数
ruby: How to step into arbitrary function while debugging
假设我在调试时停在了点上:
def get_data
byebug
=> @cache ||= calculate_data
end
而@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
键入 debug calculate_data
到 运行 calculate_data 并停在其中的第一行。
假设我在调试时停在了点上:
def get_data
byebug
=> @cache ||= calculate_data
end
而@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
键入 debug calculate_data
到 运行 calculate_data 并停在其中的第一行。