如何在Ruby中获取堆栈跟踪对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我需要在Ruby中获得堆栈跟踪对象; 不输出它,只是为了让它做一些记录,以供日后分析。那可能吗?怎么样?

提问于
用户回答回答于

你可以使用Kernel.caller。生成异常堆栈跟踪时使用相同的方法。

从文档:

def a(skip)
  caller(skip)
end
def b(skip)
  a(skip)
end
def c(skip)
  b(skip)
end
c(0) #=> ["prog:2:in `a'", "prog:5:in `b'", "prog:8:in `c'", "prog:10"]
c(1) #=> ["prog:5:in `b'", "prog:8:in `c'", "prog:11"]
c(2) #=> ["prog:8:in `c'", "prog:12"]
c(3) #=> ["prog:13"]
用户回答回答于

扫码关注云+社区