Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Hand Action Detect
- Xcode Organizer
- Xcode Cloud
- actor
- AVFoundation
- SF Symbols
- swiftUI
- ProRAW
- DriverKit
- AR Quick Look
- DooC
- SF Symbols 3.0
- Hand Pose Detect
- MDM
- User Enrollment
- Physical Audio
- async
- SWiFT
- detent
- WWDC 2021
- Mac
- Object Capture
- profile
- CoreML
- AppleEvent
- METAL
- Reality Composer
- concurrency
- NSUserActivity
- App Clip
Archives
- Today
- Total
nyancoder
WWDC 2021 - Discover breakpoint improvements 본문
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10209/
- 버그란 프로그램이 예상대로 실행되지 않는다는 의미이기 때문에, 버그가 발생하면 상황을 더 잘 이해하기 위해서 프로세스의 현재 상태를 검사합니다.
- 또는 프로세스의 실행을 진행하면서 상태를 확인해봅니다.
- 이때 버그가 발생하기 직전에 일시 정지하는 것이 버그를 확인하기 좋습니다.
- 일시정지를 하는 좋은 방법은 중단점을 사용하는 것입니다.
Source file breakpoints
- 소스 파일 중단점을 알아보면, 중단점이 하나의 파일 안에 설정되어 있습니다.
- 이 경우 가장 일반적인 유형은 특정 줄에 중단점을 설정하는 것입니다.
Line breakpoint를 만드는 가장 빠른 방법은 일시 중지하려는 줄의 바로 왼쪽의 여백을 클릭하면 중단점이 생깁니다.
- Line breakpoint는 사용하기 쉽지만 충분히 세분화되어있지 않기 때문에 때로는 한 줄 내에서도 특정 위치에 중단점을 설정하고 싶을 수 있습니다.
- 이를 위해 Xcode 13에 새로 도입된 기능이 바로 Column breakpoint입니다.
- Column breakpoint를 설정하려면, 원하는 함수 호출에서 Command-클릭을 통해 팝오버를 호출 한 다음 Set Column Breakpoint를 선택하면 됩니다.
- 중단점을 수정해야 하는 경우 이를 두 번 클릭하여 중단점 편집기를 불러올 수 있습니다.
- Column Breakpoint를 삭제하려면 빈 공간으로 드래그하여 삭제할 수 있습니다.
- 프로그램이 중단점에 도달하면 Xcode는 녹색 줄을 중지된 라인을 알려줍니다.
- Xcode 11.4에서는 실행 중인 코드 아래에 녹색 밑줄을 표시해서 다음에 실행할 코드를 알 수 있습니다.
- 열 중단점은 Swift의 클로저 또는 Objective-C의 블록에 유용합니다.
- 마지막 클로저의 $0에 열 중단점을 설정하면, 쉽게 해당 클로저가 실행될 때의 값을 확인할 수 있습니다.
Symbolic breakpoints
- 함수 이름을 이용하여 특정 함수가 실행될 때 프로세스를 중단하도록 할 수 있습니다.
- 파일 중단점을 사용할 수 없거나 사용하기 힘든 상황에서 유용합니다.
- 예를 들어 공통 기능을 구현하는 많은 하위 클래스가 있는 경우 하위 클래스의 각 파일에 중단점을 설정해야 하는 상황에서 유용합니다.
- 중단점 탐색기 하단의 추가 버튼을 눌러서 나타나는 목록에서 Symbolic Breakpoint를 선택하면 Symbol을 입력할 수 있도록 중단점 편집기가 나타납니다.
- 일반적인 함수 명의 경우 시스템 라이브러리와 같은 다른 라이브러리에 포함된 이름도 포함될 수 있지만, 이런 경우 Module 필트에 값을 넣어서 범위를 제한할 수 있습니다.
- Xcode 13의 새로운 기능으로 중단점을 어디에도 설정할 수 없으면 Xcode는 점선 아이콘으로 중단점을 표시합니다.
- 중단 점이 점선으로 표현되었을 때, 마우스를 위로 가져가면 몇 가지 도움이 될 수 있는 설명을 표시해줍니다.
- Symbolic breakpoint의 경우 이름의 철자가 정확해야 하고, 라이브러리 내에 존재해야 합니다.
- 또한 해당 중단점이 있는 라이브러리가 로드되어야 합니다.
- 몇몇 라이브러리는 사용자가 버튼을 클릭하는 것과 같은 특정 작업이 수행된 이후에만 로드가 되며, 로드가 될 때 Xcode는 중단점 표시를 갱신합니다.
- 철자가 틀린 것 같은 경우에는 검색을 통해서 찾을 수도 있지만 lldb의 lookup 기능을 이용하면 조금 더 편리합니다.
- 위의 이미지는 정규식의 경우는 'lookup -r'을 넣고, 이름에 대해서 'n'을 넣어 찾고자 하는 이름인 'convert'를 추가한 다음 모듈을 제한하기 위해 찾을 모듈 명인 'Fruta'를 입력한 예제입니다.
- 일치하는 항목이 4개의 항목에서 철자가 틀린 것을 확인할 수 있습니다.
- 참조하는 위치가 없는 않은 중단점은 소스 파일 중단점에서도 볼 수 있습니다.
- 중단점이 있는 줄이 컴파일되어야 하는데 위의 예제에서는 전처리기의 else문에 위치하기 때문에 컴파일되지 않았습니다.
- 또한 컴파일러가 모듈에 대한 디버그 정보를 생성해야 디버그 할 수 있으므로 빌드 설정을 확인해야 합니다.
Runtime issue breakpoints
- Runtime issue는 백그라운드 스레드에서 UI상태 변경과 같이 런타임에 발생하는 문제입니다.
- 충돌만큼 심각하지는 않기 때문에 기본적으로 Xcode는 프로세스를 일시 중지하지는 않습니다.
- 대신 문제가 발생하면 Xcode는 문제 탐색기에 표시합니다.
- Runtime issue breakpoint를 사용하면 문제가 발생할 때 프로그램을 멈출 수 있습니다.
- Runtime issue breakpoint에는 여러 유형이 있으므로 팝업에서 원하는 유형을 선택할 수 있습니다.
- 일부 유형의 경우는 실행 시에 특정 진단 기능을 활성화해야 합니다.
- 예를 들어 Main Thread Checker 중단점을 사용하고 싶은 경우 진단 탭에서 Main Thread Checker를 활성화해야 합니다.
'WWDC > WWDC 2021' 카테고리의 다른 글
WWDC 2021 - Meet Shortcuts for macOS (0) | 2021.07.21 |
---|---|
WWDC 2021 - Meet MusicKit for Swift (0) | 2021.07.20 |
WWDC 2021 - Meet Group Activities (0) | 2021.07.18 |
WWDC 2021 - Explore bindless rendering in Metal (0) | 2021.07.16 |
WWDC 2021 - Explore Xcode Cloud workflows (0) | 2021.07.15 |
Comments