태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바

 

요즘 Xcode를 만져보고 있는데, 어렵긴 어렵다. 스타일이라고 해야할지 접근 방식이라고 해야할지 모르겠지만 환경 자체가 너무나 이질적인지라 .. 쓰다보니 디버깅 관련된걸 메모해둬야 할 것 같아서 몇 가지 적어본다 (사실 요즘 보고 있는 책에 나오는 내용이긴 하지만;)


- 좀비 객체 만들기 ; 
객체를 미리 해제하는 코드에서 오류가 발생할 경우, 문제의 개체를 좀비 상태로 만들어 해제를 막고 객체의 상태를 체크할 수 있다. 이는 실행 파일 설정을 변경해야 하는데, Executable Info의 Arguments 탭에서 다음 환경 변수를 추가한다 :
NSZombieEnabled=YES
CFZombieLevel=16

- NSAssert 해제 ;
NSAssert의 검증을 막으려면 Project/Build Info의 Build 탭에서 설정을 추가하면 된다. GCC 4.0 - Preprocessing 하단의 Preprocessor Macros에 NS_BLOCK_ASSERTIONS를 정의하면 된다.
(어째서 이걸 '정의'해야 Assert의 검증을 'Block'하는건지... 이게 GCC 스타일인가?;)

- 예외 발생시 브레이크 포인트 걸기 ;
XCode에서는 디버깅 시 예외가 발생했을 때 자동으로 예외가 발생한 행에서 브레이크포인트가 걸리지 않는다. (그러니까 대체 왜!) Breakpoints 창을 열어서 objc_exception_throw 심볼릭 브레이크포인트를 추가해야 한다.
참고로 malloc_error_break는 alloc이 실패할 때 발생하는 듯 ... 하지만 왜 이건 애플 레퍼런스 라이브러리에도 안 나오는지가 미스테리. 뭐지?


저작자 표시 비영리 변경 금지