コール スタック ロギングを使用する正しい方法を探しています。
リストへの呼び出しをログに記録する関数があります。
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
このような粒度のデータがあれば、呼び出しの階層を再構築できます。
ありがとう