XCode에서 디버깅 모드로 테스트 중인 앱이 뭔가의 오류로 죽었다. 그런데 죽은 곳을 알 수가 없을 때가 있다. 디버거의 트레이스는 main을 가리키고 있는 경우가 많다. 이 경우 로그창의 메시지를 이용해 간접적으로 원인을 알 수도 있지만 실제 원인은 알 수 없는 경우도 많다.
이런 경우 중 다수가 아마도 NSException 로 정의된 예외가 발생했을 경우다. 예를 들어 NSArray에서 크기를 벗어나는 index를 참조했을 경우 등등 다양한 Exception이 발생할 수 있다.
예외가 발생하는 위치를 파악하기 위해 도움을 주는 방법 중 하나가 브레이크 포인트를 거는 것이다. 그냥 일반적으로 사용하는 것이 아닌 예외 브레이크 포인트 (Exception Breakpoint) 이다. 이걸 걸어두면 예외사항이 발생하는 곳에서 트레이스가 잡힌다.
Exception Breakpoint를 거는 방법은 간단하다. Breakpoint Navigator(단축키 Command-6)화면을 띄워보자.
좌측 하단에 보면 + 버튼이 보인다. 이 버튼을 눌러보자.
단번에 알 수 있다. Add Exception Breakpoint를 선택하자.
몇 가지 옵션이 있으니 필요한 대로 골라보고 Done 버튼을 누르면 예외 브레이크포인트가 걸린다.
이제 남은 일은 문제를 일으켜서(-_-) 원인을 파악하는 것이다. 다만 이렇게 한다 해도 단번에 원인을 파악하기 쉽다는 건 아니지만 조금은 더 도움이 된다.
PS. 이런 예외 처리는 코드로 제대로 처리해 두는게 당연히 우선일 것이다. Objective-C에서도 Exception Handling이 가능하다.
Popular Posts
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
Vim이 강력한 편집기로써 군림하게 된 건 편한 키맵, 정규표현식, 그리고 이 매크로 레코딩 기능이 있기 때문이라고 감히 주장하고 싶다. 레코딩 기능은 사용자가 입력하는 키를 그대로 녹화해서 매크로로 만들어 주는 기능이다. 이 기능에 대해 간단히...
-
예제로 보는 Swift 두 번째 포스팅. 이번에는 웹페이지에서 쓰이는 16진수 컬러코드를 UIColor로 변환하는 방법을 쓸 데 없이 길게 풀어써 본다. 참고로 이 글은 플레이그라운드(Playground)에서 작성한다는 가정 하에 쓰여진 글이다. ...
-
Git로 다수의 브랜치를 관리하며 브랜치간 머지(merge) 하기는 굉장히 간단한 일이다. 하지만 의외로 다른 브랜치의 일부 파일만 복사(즉 파일간 머지)해 오는 형태의 작업은 많이 하지 않나보다. 찾아보니 의외로 기존 명령어에 옵션을 하나 추가해서 ...
-
스위프트(Swift)의 변수와 상수 선언에 관한 글에서 이미 var 와 let에 대해 거론한 적이 있다. 기본적으로 이 둘은 ‘변수'와 ‘상수’를 선언하기 위한 명령어이다. 여기서 let 이라는 상수를 선언하기 위한 명령어에 대해 아주 약간만 ...
-
골프라는 스포츠는 공을 얼마나 적게 쳐서 홀에 집어넣는지를 겨루는 스포츠다. 타수를 줄여서 최대한 적게 친 순으로 순위가 메겨진다. VimGolf는 Vim으로 골프치는 것이 아니라 -_- 골프의 목적과 비슷하게 Vim으로 특정한 텍스트 프로세싱을 하는...
-
CoreData를 명확하게 설명할 말은 찾기 힘든 것 같다. 쉽게 보면 '로컬 데이터베이스를 쉽게 쓰게 해 주는 도구' 로 설명 할 수도 있고 약간 넓게 'ORM 프레임워크'로 설명 할 수도 있다. 물론 이 모두 CoreD...
-
Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요? A. 1.12가 더 최신버전입니다. 위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버...
-
애플이 WWDC2014에서 기습적으로 스위프트(Swift)를 발표해 버린 이후, 똥 밟은걸 털어낸다는 심경으로 스위프트를 공부해 보는 겸 블로그에 글을 써 왔다. 이 글은 지금까지 써 온 블로그 글을 한데 모은 길찾기용 글이다.
-
NSArray 혹은 NSMutableArray를 순차탐색(Enumeration) 하기 위한 3가지 방법 메모.



0 comments:
댓글 쓰기