我有以下代码将产生一个错误,并写入使用所有帧的转储dump.frames()
为proposed e. g. by Hadley Wickham:R:如何使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进行调试。
选择1,然后做'LS(parentenv)'或'得到( “a.local.value”,ENV = parentenv)'。 –
罢工,获得本地变量的方式,thx!当我浏览包含在转储的不同框架中的所有环境时,我仍然无法找到的是全局变量和函数。奇怪......它看起来像'.GlobalEnv'不包含在'dump.frames'中。 –
也许人们可以将额外的变量添加到转储的.rda文件中? –