R의 어떤 기능이 디버깅을 위해 플래그가 지정되었는지 어떻게 알 수 있습니까?
문제
나는 사용하고있다 debug()
더 자주 지금, 때로는 디버깅을 위해 어떤 기능이 표시되었는지 궁금합니다. 나는 당신이 사용할 수 있다는 것을 알고 있습니다 isdebugged()
특정 함수가 표시되는지 확인합니다. 그러나 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)
}
그렇게하는 모든 환경에서 실행할 수 있습니다.
find.debugged.functions()
또는 이것으로 ".globalenv"에 :
> find.debugged.functions(1)
function.name debugged
1 find.debugged.functions FALSE
2 test TRUE
여기서 디버깅하는 테스트 기능을 만들었습니다.
다른 팁
isdebugged ()를 통해 모든 것을 발사하기 위해 함수를 쓰는 것과 같은 것을 원하지 않는 한, 나는 당신이 할 수 없다고 생각합니다.
Debug.c에서는 기능입니다 do_debug
객체에 디버그 플래그가 설정되는지 확인하는 것입니다. 전화를하는 3 개의 r 함수 만 있습니다 do_debug
C 전화 : debug
, undebug
그리고 isdebugged
.
제휴하지 않습니다 StackOverflow