我有以下代码,它会引发错误并使用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)
})
Run Code Online (Sandbox Code Playgroud)
当我重新启动 R 会话并加载转储以通过以下方式调试问题时
load(file = "last.dump.rda")
debugger(last.dump)
Run Code Online (Sandbox Code Playgroud)
我在框架中的任何位置都找不到我的变量(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: …
Run Code Online (Sandbox Code Playgroud) 我不确定行为模式是什么,但有些程序 - 特别是基于rack.ru的简单运行程序 - 无法轻松调试.当断点被触发时,没有可用的源
注意这与其他SO [问题] [1]不同
[1]:在ruby中,为什么我的IRB交互式调试会话总是说"没有可用的源文件" session-always-say-no-sourcefile