일정
- 알고리즘 스터디 & 데일리 스크럼(09:00 ~ 11:00)
- 개인 프로젝트 업데이트 및 배포
TIL (Today I Learned): Xcode 디버깅 기능, 중단점, LLDB 명령어
1. Xcode에서 자주 사용하는 디버깅 기능
Xcode에서 디버깅할 때 자주 활용되는 기능들은 코드의 흐름을 추적하고 문제를 해결하는 데 필수적입니다. 아래는 주요 기능들입니다:
- 중단점(Breakpoint): 코드의 특정 지점에서 실행을 멈추게 하여 변수 값이나 프로그램 상태를 점검할 수 있습니다.
- 스텝 오버(Step Over): 현재 줄을 실행한 뒤 다음 줄로 이동하며, 함수 내부로 들어가지 않습니다.
- 스텝 인(Step In): 함수나 메서드 호출 내부로 들어가 디버깅을 이어갑니다.
- 스텝 아웃(Step Out): 현재 함수 실행을 완료하고 호출한 상위 레벨로 돌아갑니다.
- 변수 뷰(Variable View): 디버깅 중 현재 스코프 내 변수와 값을 실시간으로 확인할 수 있는 창입니다.
- 콘솔(Console): LLDB 명령어를 입력하거나 디버깅 로그를 확인할 수 있는 공간입니다.
2. 중단점(Breakpoint)의 종류와 활용 방법
중단점은 디버깅의 핵심 도구로, 다양한 유형이 있으며 상황에 따라 유용하게 활용됩니다:
- 일반 중단점:
- 설명: 특정 코드 라인에 설정해 실행을 멈춥니다.
- 활용 방법: 함수의 시작점이나 조건문에서 변수 상태를 확인할 때 사용합니다. 예를 들어,
if 문에서 조건이 어떻게 평가되는지 점검할 수 있습니다.
- 조건부 중단점:
- 설명: 특정 조건이 참일 때만 실행을 멈춥니다.
- 활용 방법: 반복문에서 특정 변수 값(예:
i == 100)이 되었을 때 멈추게 설정하여 효율적으로 디버깅합니다.
- 예외 중단점:
- 설명: 앱이 충돌하거나 예외가 발생했을 때 실행을 멈춥니다.
- 활용 방법: 런타임 오류의 원인을 찾을 때 유용하며, 예를 들어 nil 참조나 배열 범위 초과 문제를 추적할 수 있습니다.
- 심볼릭 중단점:
- 설명: 특정 함수나 메서드가 호출될 때 멈추게 합니다.
- 활용 방법: 외부 라이브러리나 프레임워크의 특정 메서드 호출 시점을 확인할 때 사용합니다.
3. LLDB 콘솔에서 유용한 명령어
LLDB는 Xcode의 디버깅 콘솔에서 사용할 수 있는 강력한 도구로, 아래 명령어들이 자주 사용됩니다:
po (print object):
- 객체의
description을 출력합니다.
- 예:
po myObject → 객체의 내용을 보기 좋게 확인.
p (print):
- 변수의 값을 출력합니다.
- 예:
p myVariable → 기본 데이터 타입 값을 확인.
expr:
- 표현식을 실행하고 결과를 출력하거나 변수 값을 변경합니다.
- 예:
expr myVariable = 10 → 변수 값을 동적으로 수정.
bt (backtrace):
- 현재 스레드의 호출 스택을 출력하여 실행 흐름을 추적합니다.
frame variable:
continue:
thread step-over:
thread step-in: