2009-10-23 52 views

回答

7

这是令人费解的,但它的工作原理:

find.debugged.functions <- function(environments=search()) { 
    r <- do.call("rbind", lapply(environments, function(environment.name) { 
    return(do.call("rbind", lapply(ls(environment.name), function(x) { 
      if(is.function(get(x))) { 
      is.d <- try(isdebugged(get(x))) 
      if(!(class(is.d)=="try-error")) { 
       return(data.frame(function.name=x, debugged=is.d)) 
      } else { return(NULL) } 
      } 
     }))) 
    })) 
    return(r) 
} 

你可以像这样在所有环境中运行它:

find.debugged.functions() 

或者只是在你的 “.GlobalEnv” 与此:

> find.debugged.functions(1) 
      function.name debugged 
1 find.debugged.functions FALSE 
2     test  TRUE 

在这里,我创建了我调试测试功能。

2

除非你想进入像写一个函数来烧透isdebugged(),我不认为你可以将所有内容。

在debug.c,功能do_debug是用于调试标志被一个对象上设置什么检查。仅存在三个R的功能,其调用do_debug调用C:debugundebugisdebugged

相关问题