エラーを引き起こし、 Hadley Wickham によって提案されたdump.frames()
ように使用してすべてのフレームのダンプを書き込む次のコードがあります。
a <- -1
b <- "Hello world!"
bad.function <- function(value)
{
log(value) # the log function may cause an error or warning depending on the value
}
tryCatch( {
a.local.value <- 42
bad.function(a)
bad.function(b)
},
error = function(e)
{
dump.frames(to.file = TRUE)
})
R セッションを再起動し、ダンプをロードして問題をデバッグすると、
load(file = "last.dump.rda")
debugger(last.dump)
変数 (a、b、a.local.value) も関数 "bad.function" もフレームのどこにも見つかりません。
これにより、ダンプは私にとってほとんど価値がなくなります。
適切な事後分析のためにすべての変数と関数を表示するにはどうすればよいですか?
の出力debugger
は次のとおりです。
> load(file = "last.dump.rda")
> debugger(last.dump)
Message: non-numeric argument to mathematical functionAvailable environments had calls:
1: tryCatch({
a.local.value <- 42
bad.function(a)
bad.function(b)
2: tryCatchList(expr, classes, parentenv, handlers)
3: tryCatchOne(expr, names, parentenv, handlers[[1]])
4: value[[3]](cond)
Enter an environment number, or 0 to exit
Selection:
PS: デバッグ用に R3.3.2 を RStudio で使用しています。