Swift:
디버거 사용하기

사용 방법:

Xcode(스위프트용 IDE)에서 디버거를 사용하려면, 중단점을 설정하고, 변수를 검사하며, 표현식을 관찰할 수 있습니다. 예시는 다음과 같습니다:

func findFactorial(of number: Int) -> Int {
    if number == 0 {
        return 1
    }
    return number * findFactorial(of: number - 1)
}

let result = findFactorial(of: 5)
print(result)

Xcode에서 줄 번호 왼쪽을 클릭하여 중단점을 설정하고, 프로그램을 실행하세요. 중단점에 도달하면, Xcode는 실행을 일시 중지합니다. 이제 다음을 할 수 있습니다:

  1. 변수 값을 확인합니다.
  2. 디버거 컨트롤을 사용하여 다음 줄을 실행(Step over)하거나 함수 내부로 들어갑니다(Step into).
  3. 특정 변수나 상수의 변경을 모니터링하기 위해 ‘감시 목록’에 표현식을 추가합니다.

디버그 영역에서 볼 수 있는 예시입니다:

(lldb) po number
5
(lldb) po result
120

심층 탐구:

디버거는 1940년대 이래 프로그래밍 환경의 일부였으며, 단순한 중단점 시스템에서 복잡한 UI 기반 경험까지 발전했습니다. Xcode의 내장 디버거 이외에도, Xcode가 내부적으로 사용하는 LLDB(저수준 디버거)와 같은 타사 도구도 있습니다. 어떤 이들은 print() 문을 사용하여 디버깅하는 경우도 있으나(애정을 담아 “원시적 디버깅"이라고도 함), 이는 대규모 프로젝트나 복잡한 버그에 대해서는 덜 효율적입니다. 디버거를 사용할 때, 실행 제어, 런타임 내부 조사, 데이터 조작을 다루고 있습니다. 이 원칙들에 대한 깊은 이해는 효율적인 디버깅에 큰 도움이 됩니다.

참고 자료: