본문 바로가기
[ios] EXC_BAD_ACCESS 디버그 & NSZombie [ios] EXC_BAD_ACCESS 디버그 & NSZombie -다음과 같은 경우에 EXC_BAD_ACCESS 가 발생한다. 1. object 가 initialize 되지 않았다. 2. object 가 이미 release 되어 있다. 3. 그 외… (이 경우는 주로 발생하지 않는다.) -EXC_BAD_ACCESS 디버그는 NSZombie 를 enabling 함으로써 쉽게 접근할 수 있다. 1. XCode 에서 [Product] 메뉴 -> [Scheme] -> [Edit Scheme…] 2. Run 의 [Diagnostics] 탭으로 가서 [Enable Zombie Objects] 를 체크한다. 이렇게 하면 Release 된 object 들이 NSZombie 로 잡혀서 debug 하기가 쉽다. debug.. 2017. 12. 12.
[Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 [Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 출처 : Effective Objective-C -메모리 관리 오류를 디버깅하는 것은 매우 어려운 일이다.할당 해제된 객체에 메시지를 보내는 일은 예상할 수 있듯이 전혀 안전하지 못하다.그러나 때때로 그것은 동작하기도 하고 동작하지 않기도 하는데 이는 객체가 사용했던 메모리를 덮어 썼느냐에 달려있다.메모리가 재사용되었는지 알 수 있는 방법은 없다.그로 인해 크래시가 가끔 일어난다.메모리의 일부분만 재사용되는 경우도 있는데 이 때 객체의 일부분은 여전히 유효하다.또한 순전히 운으로 또 다른 유효한 살아 있는 객체가 메모리를 덮어쓸 수도 있다.이 경우 런타임은 새로운 객체에 메시지를 보낼 것이고 객체는 응답을 할 .. 2017. 9. 29.
반응형