假设我有
fn1<-function(arg) {
if(is.null(arg))
browser()
}
fn2<-function() {
#Complicated code with a bug that produces NULL
arg<-NULL
fn1(arg)
}
当我运行我的应用程序时,曾经数百次fn2
中的复杂代码错误地设置arg<-NULL
,fn1
被fn2
困住。
如何在导致此错误的上下文中方便地调试e<-parent.frame()
?我想要在调用函数的下一个命令中设置断点的东西,所以当我按下Shift + F6时,焦点会把我带到那里。
留给我的是使用裸R命令,如eval(expr=<command>, envir=e)
来获取父函数的上下文和其中的所有符号,并'Small'
在该环境中执行。 / p>