본문 바로가기

Mac&iOS

NSZombieEnabled로 Bad Access에러 찾기

Objective C로 개발할 때 메모리 관리를 잘못하면 crash가 발생하게 된다. 최신 XCode에는 Analyer를 통해서 잘못된 메모리 사용을 그래픽 적으로 볼 수 도 있다. 


Product>Analyze를 눌러보면 파란색 사각형에 하얀색 아이콘이 생기는데, 클릭해보면, 놀랍게도 어떤 순서로 접근했을 때 문제가 발생할 수 있는지 시각적으로 볼 수 있다.


이것 말고, 런타임때 문제가 발생했을 때 알고 싶다면 실행시 환경변수(Environment Variables)에 NSZombieEnabled 값을 줘서 위치를 찾아낼 수 도 있다.


Product > Scheme > Edit Scheme > Run > Arguments > Environment Variables 에 NSZombieEnabled를 YES 값을 줌


그리고


Product > Scheme > Edit Scheme > Run > Arguments > Environment Variables 에 CFZombieLevel을 16으로 설정



이렇게 할 경우 Output창에서 오류코드가 추가되는 것을 볼 수 가 있다.


Copyright © 2015 by ZAMCOM, All rights reserved.