2009-10-23 16 views

cevap

7

Bu dolambaçlı, ama çalışır:

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) 
} 

Öyle gibi tüm ortamlarda çalıştırabilirsiniz:

find.debugged.functions() 

Ya da sadece bu ile ".GlobalEnv" in:

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

İşte ben hata ayıklama bir test işlevi yarattı.

2

sen isdebugged(), yapabileceğini sanmıyorum aracılığıyla her şeyi ateşe bir işlev yazma gibi bir şey içine almak istediğini sürece.

debug.c, işlev do_debug DEBUG bayrak bir nesne üzerinde ayarlanmış olan denetler budur. do_debug C numaralı çağıran yalnızca üç R fonksiyonu vardır: debug, undebug ve isdebugged.

İlgili konular