디버그/언디버그

디버그/언디버그 (debug/undebug)

R에서는 debug()로 함수에 디버거를 붙이고, undebug()로 해제할 수 있어요. 함수가 호출될 때마다 디버거가 실행되면서 문장 단위로 실행을 제어할 수 있답니다.

출처: 문서

본문

9.2 debug/undebug

debug(fun) 명령으로 모든 함수에 디버거를 호출할 수 있어요. 그 후에는 그 함수가 평가될 때마다 디버거가 호출돼요. 디버거는 함수 본문 안에 있는 문장들의 평가를 하나씩 제어할 수 있게 해줘요. 각 문장이 실행되기 전에 그 문장이 화면에 출력되고, 특별한 프롬프트가 제공돼요. 이 프롬프트에서는 일반적인 R 명령을 모두 입력할 수 있으며, 앞선 표에 있는 명령들은 특별한 의미를 가져요.

디버깅을 끌 때는 함수를 인자로 전달해서 undebug를 호출해요.

> debug(mean.default)
> mean(1:10)
debugging in: mean.default(1:10)
debug: {
    if (na.rm)
        x <- x[!is.na(x)]
    trim <- trim[1]
    n <- length(c(x, recursive = TRUE))
    if (trim > 0) {
        if (trim >= 0.5)
            return(median(x, na.rm = FALSE))
        lo <- floor(n * trim) + 1
        hi <- n + 1 - lo
        x <- sort(x, partial = unique(c(lo, hi)))[lo:hi]
        n <- hi - lo + 1
    }
    sum(x)/n
}
Browse[1]>
debug: if (na.rm) x <- x[!is.na(x)]
Browse[1]>
debug: trim <- trim[1]
Browse[1]>
debug: n <- length(c(x, recursive = TRUE))
Browse[1]> c
exiting from: mean.default(1:10)
[1] 5.5

더 알아보기 (Learn more)

출처: R Language Definition - 디버그/언디버그