일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- MKMapViewDelegate
- App Store Connect
- Startign Assignments
- CoreLocation
- swift
- font book
- dispatchsource
- 클로저의 캡슐화
- 서체관리자
- xcode로 날씨앱 만들기
- weatherKit
- Xcode
- 한국어 개인정보처리방침
- weak var
- UIAlertAction
- RunningTimer
- Timer
- 러닝타이머
- MKMapItem
- CLLocationManagerDelegate
- 러닝기록앱
- WeatherManager
- SwiftUI Boolean 값
- Protocol
- UICollectionViewFlowLayout
- 단일 책임원칙
- addannotation
- Required Reason API
- AnyObject
- 영문 개인정보처리방침
Archives
- Today
- Total
VesselWheel
디버깅 본문
브레이크 포인트란
파란색 화살표를 통해 버그가 의심되는 코드에서 코드 실행을 멈출 수 있는 도구
LLDB 개념 이해하기
손쉽게 버그를 추적하고 매번 빌드를 하여 테스트를 해보는 런타임 시간을 줄이기 위해 사용하는 디버거
- Low-Level Debugger라는 뜻으로 LLVM의 디버거 컴포넌트를 개발하는 애플의 서브 프로젝트
- 로우레벨 컨트롤 가능한 모듈로 이뤄져있으며 기계어에 가까운 영역까지 디버깅 가능 (C/C++/Objective-C/Swift 지원)
- Xcode의 기본 디버거로 내장
- Clang식 파서 및 LLVM 디스어셈블러와 같은 LLVM 프로젝트의 기본 라이브러리를 활용한 재사용 가능한 컴포넌트 집합으로 빌드됨
- 실제 프로그램이 어떻게 동작하는지 이해가 쉬워짐
- LLVM의 프론트엔드에 대응하는 디버거로 간결하고 명확한 에러메시지의 장점
- 문법적 오류와 논리적 오류 중 런타임 시 일어나는 논리적 오류를 잡는것이 목표
1. textLabel.text를 설정하기 전과, “clicked button”로 설정한 후 시점에 각각 브레이크 포인트를 찍어주세요.
2. 그리고 앱을 실행한 다음, 버튼을 클릭하여 브레이크 포인트를 작동시켜 주세요.
3. textLabel.text를 설정하기 전 시점의 브레이크 포인트가 작동했을 때, LLDB po 명령어를 사용해 textLabel의 text을 출력해 보세요.
po self.textLabel.text
4. textLabel.text를 “버튼을 클릭했습니다”로 설정한 이후 시점의 브레이크 포인트가 작동했을 때, LLDB po 명령어를 사용해 textLabel의 text을 출력해 보세요.
po self.textLabel.text
5. 브레이크 포인트를 통해 디버깅 후 다음 브레이크 포인트가 설정된 곳까지 코드를 실행해야할 경우 디버깅 영역에서 주황색 박스로 되어 있는 부분인, Continue program execution 혹은 Step over를 통해 진행할 수 있습니다.
6. 그 외 명령어들
// 값 수정 가능
expression self.textLabel.text = "LLDB 명령어에서 수정도 가능합니다"
// 값 선언 가능 ($를 꼭 붙여주세요)
expr let $somNumber = 10
Reference
https://green1229.tistory.com/83
https://developer.apple.com/documentation/xcode/setting-breakpoints-to-pause-your-running-app
'Xcode Study' 카테고리의 다른 글
CollectionView (1) | 2023.12.14 |
---|---|
Counter앱 만들기 (0) | 2023.12.13 |
UIPickerView와 protocol & delegate (0) | 2023.12.12 |
Xcode 시작하기 - 화면 - Interface (1) | 2023.12.11 |
키오스크 프로그램에 사용된 protocol과 extension (0) | 2023.12.09 |