본문 바로가기

Debug

로그 찍기 다른 개발자분 블로그를 보다가 정리해 놓으면 좋을 것 같아서 작성한다. 원문 출처는 맨 아래에 있으며, 여기에 내 짧은 생각도 조금 추가했다. 출처 블로그에 있던 문구와 조금 다르게 쓰기도 했는데 내가 평소에 쓰던대로 쓴거고 다른 의도는 없다. 1. 함수 시작 후에 BEGIN LOG, 함수 리턴하기 직전에 END LOG를 찍는다. : 어떤 효과가 있을까? Crash나 Lock 문제 분석용. 혹은 어떤 함수가 호출이 되었는지 여부를 알 수 있다. 함수명을 붙여주어야 BEGIN LOG와 END LOG를 쌍으로 확인하면서 CALL STACK을 유추할 수 있다. 함수 내부에 리턴이 여러개일때는 구분할 수 있는 표시(라인넘버)를 해둘 수 도 있다. 2. 함수 시작시 전달받은 파라미터를 조사하고 비정상 값일 때는 .. 더보기
NSZombieEnabled로 Bad Access에러 찾기 Objective C로 개발할 때 메모리 관리를 잘못하면 crash가 발생하게 된다. 최신 XCode에는 Analyer를 통해서 잘못된 메모리 사용을 그래픽 적으로 볼 수 도 있다. Product>Analyze를 눌러보면 파란색 사각형에 하얀색 아이콘이 생기는데, 클릭해보면, 놀랍게도 어떤 순서로 접근했을 때 문제가 발생할 수 있는지 시각적으로 볼 수 있다. 이것 말고, 런타임때 문제가 발생했을 때 알고 싶다면 실행시 환경변수(Environment Variables)에 NSZombieEnabled 값을 줘서 위치를 찾아낼 수 도 있다. Product > Scheme > Edit Scheme > Run > Arguments > Environment Variables 에 NSZombieEnabled를 YES.. 더보기