내가 정의하지 않은 코드에서 발생한 이슈를 디버깅하고 싶다면 symbolic breakpoint 를 활용해 보세요.
Xcode의 좌측 내비게이터 영역에 보면 디버깅을 위한 breakpoint 를 관리하는 Breakpoint navigator 가 있습니다. 그리고 이를 선택하면 좌측 하단의 + 버튼을 클릭해서 여러가지 종류의 브레이크 포인트를 설정해 줄 수 있습니다.
브레이크 포인트를 세팅하는 법에 대해서도 정리된 article 이 하나 있습니다. Setting breakpoints to pause your running app 이라는 제목의 글입니다.
Setting breakpoints to pause your running app 아티클 링크
브레이크 포인트를 설정하고 활용하는 다양한 방법들이 나열되어 있는데, 오늘은 심볼릭 브레이크 포인트에 대해서만 기록하려고 합니다. 조금만 읽어내려가면 관련한 내용이 등장하는데요.
UIKit 같은 프레임워크를 활용해서 앱을 개발하는 경우, 실제 앱의 동작 과정에서는 내가 작성한 코드 외에도 프레임워크가 내장한 함수를 호출하고 실행하는 과정이 함께 포함됩니다. 일반적인 디버깅이야 당연히 내가 작성한 코드의 문제점을 찾는 과정이겠지만, 때로는 내가 작성하지 않았거나 프레임워크를 잘못 활용해서 발생하는 오류도 있을 수 있겠죠.
심볼릭 브레이크 포인트는 이런 상황에 유용하게 활용할 수 있는 브레이크 포인트 유형입니다. 문서에서는 오토 레이아웃과 관련한 이슈를 예시로 들고 있는데요. 실제로 오토 레이아웃 이슈가 발생하면 에러 메시지에서 UIViewAlertForUnsatisfiableConstraints
에 브레이크 포인트를 설정하라고 추천한다고 합니다.
Condition에 특정한 조건을 걸어두거나, 브레이크 포인트에서 멈출 때 바로 특정한 액션이 이어서 실행되도록 해줄 수도 있으니 궁금하신 분들은 위에 공유드린 문서를 읽어보시면 좋을 것 같습니다.