Xcode의 브레이크 포인트가 제공하는 여러가지 기능을 알아봅시다.
Xcode의 에디터 화면에서 소스코드 좌측 라인 넘버를 클릭하면 해당 부분에 브레이크 포인트를 걸 수 있습니다.
생성된 브레이크 포인트를 드래그해서 빼내면 사라집니다.
클릭하면 연한 파랑으로 바뀌며 비활성화 됩니다.
Xcode 좌측 패널에서 설정된 브레이크 포인트를 모아서 볼 수 있습니다.
이미지 내 "Modified breakpoint"는 브레이크 포인트에 작동 조건을 추가한 경우를 의미합니다 (아래에 나옵니다)
이미 생성된 브레이크 포인트를 더블 클릭 혹은 우클릭 & Edit breakpoint 하여 브레이크 포인트가 작동하는 조건을 설정할 수 있습니다.
특정 횟수 이상 반복한 후에 브레이크 포인트가 작동하도록 설정하거나
특정 조건이 만족된 경우에만 작동하도록 설정할 수 있습니다
오토레이아웃과 같은 소스코드 이외의 부분에도 브레이크 포인트를 설정할 수 있습니다
브레이크 포인트 모아보기 항목의 "Add breakpoint" -> Symbolic breakpoint를 통해 설정할 수 있습니다.
(사용 가능한 심볼의 종류를 정리한 애플 문서는 보이지 않네요..)
앱이 동작하면서 수시로 호출되는 심볼에 브레이크 포인트를 설정할 때는 조건을 추가하거나 활성화 여부를 수동으로 조작하는 방식으로 조사하고자 하는 코드가 실행될 때만 브레이크 포인트가 작동하도록 하는 것이 좋다고 합니다.
처리되지 않은 (uncaught) 예외 상황이 발생할 때 브레이크 포인트가 작동하도록 설정할 수 있습니다.
Objective-C 코드에서 발생하는 예외는 Xcode에서 문제 발생 지점을 Appdelegate 혹은 main 메서드를 가르키기 때문에 브레이크 포인트를 지정하면 문제 지점을 찾는 데 도움을 받을 수 있습니다.
브레이크 포인트 모아보기 항목의 "Add breakpoint" -> Exception breakpoint를 통해 설정할 수 있습니다.
브레이크 포인트를 설정하지 않으면 Objective-C코드에서 예외 발생시 이런 식으로 보여줍니다.
브레이크 포인트를 설정하면 위치를 알려줍니다
Xcode sanitizer 를 통해 여러 런타임 이슈를 발견할 수 있습니다. (사용법은 링크를 참고하세요)
sanitizer를 사용하지 않았을 때 이렇게 보이던 문제가
이렇게 바뀝니다
더 자세한 내용은 여기를 통해 알아볼 수 있습니다 (https://developer.apple.com/documentation/xcode/diagnosing-memory-thread-and-crash-issues-early)
브레이크 포인트를 더블 클릭하면 브레이크 포인트를 세부적으로 설정할 수 있습니다.
세부 설정 창에서 Action 항목을 통해 브레이크 포인트에 도달했을 때 수행될 동작을 지정할 수 있습니다.
소리 재생도 가능합니다.
(애플은 브레이크 포인트에서 앱이 멈추지 않고 진행되게 하면서 브레이크 포인트 도달은 확인할 때 쓰면 유용하다고 말합니다.)
우측의 + 버튼을 통해 여러가지 동작을 지정할 수도 있습니다
https://developer.apple.com/documentation/xcode/setting-breakpoints-to-pause-your-running-app
브레이크 포인트에 작동 조건을 설정하는 건 iOS 개발하면서 정말 처음 보네요 크…
덕분에 좋은 정보 알게 되었습니다 ㅎㅎ 감사합니다 👍🏻👍🏻