Xcode 에서는 코드의 진행을 의도적으로 멈추고 그 시점에서의 메모리나 변수 값들을 확인할 수 있는 브레이크 포인트를 제공합니다.
이 글은 시리즈의 첫 편으로 간단하게 브레이크 포인트를 사용하는 방법에 대해서 다룹니다.
Xcode 에서 브레이크 포인트를 지정하기 위해서 가장 많이 사용되는 방법은 위 이미지처럼 Editor Area 에서 line number 를 클릭해서 브레이크 포인트를 활성화하는 것입니다.
프레이크 포인트를 활성화한 채로 코드가 실행되면 특정 지점에서 코드의 진행이 멈추게 됩니다. 비활성화하고 싶을 땐 활성화된 브레이크 포인트를 다시 한 번 더 클릭하면 됩니다. 그리고 위 이미지처럼 아무것도 없는 빈 줄에 브레이크 포인트를 활성화하면 브레이크 포인트 이후로 가장 처음 마주치는 코드가 실행되기 직전에 코드의 진행이 멈추게 됩니다.
브레이크 포인트에서 코드의 진행이 멈췄다면 다시 실행할 수도 있어야겠죠? Editor Area 바로 아래 위치한 바에서 표시한 버튼을 누르면 다시 코드가 진행됩니다.
뭔가 눌러보고 싶게 생겨서
(저만 그런가요?)
이미 눌러보신 분들도 계시겠지만 브레이크 포인트를 일괄적으로 활성화/비활성화하기 위해서는 아래 표시한 버튼을 누르면 됩니다.
이제 브레이크 포인트를 지정하는 방법은 알았으니 응용을 해보겠습니다. Xcode 의 브레이크 포인트에는 특정 조건문을 작성해서 원하는 경우에만 코드의 진행을 멈추게 할 수도 있습니다.
위 코드를 보면 loop 가 일어날 때마다 코드의 진행이 멈출 겁니다. 똑똑한 Xcode 는 브레이크 포인트에서 특정 조건이 참일 때에만 브레이크 포인트가 실행되게 할 수도 있습니다. 브레이크 포인트를 우 클릭하게 되면 아래와 같은 팝업이 나옵니다.
넷 중에 뭘 선택하셔야 할지 감이 오시나요? 여기서 Edit Breakpoint 를 선택해보겠습니다.
이번에도 감이 오시죠? Condition 영역에 조건문을 작성해보겠습니다. 저는 index == 2
라고 설정해보겠습니다.
방법은 알았으니, 실전에 적용하는 것은 여러분의 몫입니다. 포스트에는 담기지 않았지만 자동 완성도 어느 정도 지원하기 때문에 사용하기 편리합니다. (왜 어느 정도인 거냐? 어느 정도의 범위가 어디냐? 는 겪어보셔야 알 겁니다.)
Edit Breakpoint 팝업에서는 조건문을 작성하는 것뿐만 아니라 다른 기능들도 제공합니다. 이미 감을 잡으신 분들도 계실 겁니다.
Ignore 에서는 해당 브레이크 포인트를 몇 번 지나간 다음에 코드의 진행을 멈추게할 것인지 정의합니다. 예를 들어 위 코드에서 조건문 없이 Ignore 가 2 였다면 index 0, index 1 는 무시한 채 index 2 에서 브레이크 포인트에 걸리게 되겠죠.
Action 는 해당 브레이크 포인트에 도달했을 때 동작을 정의할 수 있습니다.
Options 에는 체크 박스가 하나 있습니다. 뒤에 적힌 말 그대로 해당 브레이크 포인트에 도달하게 돼도 코드의 진행이 멈추지 않고 그냥 지나가게 됩니다.
Action 과 Options 는 다음 포스팅에서 활용하는 방법에 대해서 다루겠습니다.
'Xcode' 카테고리의 다른 글
[Xcode] M1 'cyclone' is not a recognized processor for this target 해결법 (0) | 2022.07.27 |
---|---|
[Xcode] Cocoapods 를 사용하는 경우 M1 시뮬레이터 빌드가 안되는 문제 (1) | 2021.05.13 |
[Xcode] libSwiftPM.sylib 플러그인을 사용하는 동안 Xcode이(가) 예기치 않게 종료되었습니다. (0) | 2021.04.05 |
[Xcode] Breakpoint 사용하기 (3) - NSLog (0) | 2020.07.07 |
[Xcode] Breakpoint 사용하기 (2) - LLDB (1) | 2020.07.05 |