EXC_BAD_ACCESS 메모리 문제 디버깅하기
Study/iOS 개발 / 2011/03/12 09:38
EXC_BAD_ACCESS 오류가 나면서 프로그램이 종료되는 현상은 이미 소멸된 개체의 포인터에 메시지를 보낸 것이 원인입니다.
문제는 이렇게 종료되었을 때 코드의 어느 부분에서 그러한 메시지 전달이 시도되었는지 알려주지 않아서 디버깅이 정말 힘들다는거죠.
이럴 때 NSZombie를 사용해야 합니다.
XCode 왼편 목록에서 Executables 중 디버깅하려는 항목의 Get Info로 들어갑니다. 거기서 Arguments에 NSZombieEnabled 를 YES로 성장하는 항목을 추가해줍니다. 그리고 디버깅을 하면 됩니다.
이렇게 설정하면 개체가 소멸된 그자리에 좀비가 남아서 잘못된 메시지 전달 시도라는 것을 알려줍니다.
문제에 대한 디버깅을 마치면 위에서 추가한 NSZombieEnabled Argument를 지우거나 체크 해제해줍니다.
iPhone 에서 작성된 글입니다.
문제는 이렇게 종료되었을 때 코드의 어느 부분에서 그러한 메시지 전달이 시도되었는지 알려주지 않아서 디버깅이 정말 힘들다는거죠.
이럴 때 NSZombie를 사용해야 합니다.
XCode 왼편 목록에서 Executables 중 디버깅하려는 항목의 Get Info로 들어갑니다. 거기서 Arguments에 NSZombieEnabled 를 YES로 성장하는 항목을 추가해줍니다. 그리고 디버깅을 하면 됩니다.
이렇게 설정하면 개체가 소멸된 그자리에 좀비가 남아서 잘못된 메시지 전달 시도라는 것을 알려줍니다.
문제에 대한 디버깅을 마치면 위에서 추가한 NSZombieEnabled Argument를 지우거나 체크 해제해줍니다.
iPhone 에서 작성된 글입니다.
'Study > iOS 개발' 카테고리의 다른 글
| Xcode 4에서 NSZombie 사용하는 방법 (0) | 2011/07/21 |
|---|---|
| EXC_BAD_ACCESS 메모리 문제 디버깅하기 (0) | 2011/03/12 |
| 디버그 시 retain count 보는 방법 (0) | 2011/01/18 |
| [SCPlugin 설치] (3) | 2011/01/18 |
Trackback | http://xinics.tistory.com/trackback/66
-
2011/07/21 11:39
Subject: Xcode 4에서 NSZombie 사용하는 방법
Xcode 4는 이전 버전과 UI가 완전히 달라져서 힘드네요 orz 전에 EXC_BAD_ACCESS 를 디버깅하는 방법을 포스팅한 적이 있는데, 달라진 UI에 맞추어 다시 설명해보도록 하지요. Environment 설정이 이제는 Scheme 쪽으로 통합되었습니다. 좌측 상단에 있는 시뮬레이터로 실행할지 실제 장비에서 실행할지 선택하는 부분이 Scheme 선택 UI 입니다. 여기서 Edit Scheme... 을 고릅니다. 그 후 뜨는 대화창에서 좌측의..
삭제Tracked from Xinics 개발부

댓글을 달아 주세요