R Language
디버깅
수색…
브라우저 사용
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