我正在寻找使用调用堆栈日志记录的正确方法。
我有函数,可以记录他们对列表的调用。
s <- list()
f <- function(){
s <<- c(s,list(sys.call()))
g()
}
g <- function(){
s <<- c(s,list(sys.call()))
1
}
它们将以未知的顺序被调用。
f()
f()
g()
f()
sys.call()
除了能够建立呼叫层次结构之外,我还应该记录哪些数据?
我想更改我当前的日志粒度。
sapply(s,deparse)
# [1] "f()" "g()" "f()" "g()" "g()" "f()" "g()"
如下所示。
# sys.call call_id call_seq
# : f() 1 0
# : g() 1 1
# : f() 2 0
# : g() 2 1
# : g() 3 0
# : f() 4 0
# : g() 4 1
拥有如此粒度的数据,我将能够重建调用层次结构。
谢谢