수색…


브라우저 사용

browser 기능은 중단 점처럼 사용될 수 있습니다. 코드 실행은 호출 지점에서 일시 중지됩니다. 그런 다음 사용자는 변수 값을 검사하고 임의의 R 코드를 실행 한 다음 코드를 한 행씩 단계별로 실행할 수 있습니다.

코드에서 browser()browser() 되면 대화식 인터프리터가 시작됩니다. 모든 R 코드는 정상적으로 실행될 수 있으며 다음 명령이 추가로 제공됩니다.

명령 의미
기음 브라우저를 종료하고 프로그램을 계속하십시오.
에프 현재 루프 또는 함수 마침 \
스텝 오버 (다음 명령문 평가, 함수 호출 수행)
에스 한 단계 씩 (다음 명령문 평가, 함수 호출 단계)
어디에 스택 추적 인쇄
아르 자형 "다시 시작"을 다시 시작하십시오.
브라우저를 종료하고 종료하십시오.

예를 들어,

toDebug <- function() {
    a = 1
    b = 2
    
    browser()
    
    for(i in 1:100) {
        a = a * b
    }
}

toDebug()

위의 스크립트를 실행하면 처음에는 다음과 같은 것을 볼 수 있습니다.

Called from: toDebug
Browser[1]>

그런 다음 프롬프트와 상호 작용할 수 있습니다.

Called from: toDebug
Browser[1]> a
[1] 1
Browser[1]> b
[1] 2
Browse[1]> n
debug at #7: for (i in 1:100) {
    a = a * b
}
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 1
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 2
Browse[2]> Q

browser() 는 다음과 같이 기능 체인의 일부로 사용할 수도 있습니다.

mtcars %>% group_by(cyl) %>% {browser()}

디버그 사용

debug 기능을 사용하여 debug 를 설정할 수 있습니다.

debug(mean)
mean(1:3)

이후의 모든 함수 호출은 디버깅 모드로 들어갑니다. undebug 로이 동작을 비활성화 할 수 있습니다.

undebug(mean)
mean(1:3)

한 번만 함수의 디버깅 모드로 들어가기를 원한다면 debugonce 의 사용을 고려하십시오.

debugonce(mean)
mean(1:3)
mean(1:3)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow