我正在实现一个断点函数,用于在 ruby 中调试我的代码。
我的断点函数就像breakpoint
下面的代码一样。
def breakpoint s
color_s = "\033[1m\033[33m"
color_f = "\033[0m\033[22m"
line= (caller.first.split ":")[1]
puts "#{color_s}#{Time.new.strftime("%H:%M:%S")} line:#{line} -- #{s.to_s}#{color_f}"
gets
end
a = 3
puts "Hello World"
breakpoint "test"
它会产生类似的输出
Hello World
19:21:33 line:11 -- test
注意:line:11
是调用函数的行号。
我的问题是如何从程序堆栈中获取变量名和值。例如在上面的代码中:a = 3