Şu anda debug()
kullanıyorum ama bazen hata ayıklama için hangi işlevlerin işaretlendiğini merak ediyorum. Belirli bir fonksiyonun işaretlenip işaretlenmediğini öğrenmek için isdebugged()
'u kullanabileceğinizi biliyorum. Ama R hata ayıklanan tüm işlevleri listelemek için bir yolu var mı?R'de hangi işlevlerin hata ayıklama için işaretlendiğini nereden biliyorsunuz?
7
A
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
.