我正在實現一個斷點函數,用於在ruby中調試我的代碼。爲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
是你的 「斷點功能」 看中'puts',或者它實際上應該中斷執行?你爲什麼不用'pry'或'debugger'來代替? – tessi
爲獲得中斷執行而添加'gets'。 – NewMrd
什麼變量名稱和值? – sawa