R의 어떤 기능이 디버깅을 위해 플래그가 지정되었는지 어떻게 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1614889

  •  06-07-2019
  •  | 
  •  

문제

나는 사용하고있다 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top